1. JDK11下载指南:选对版本很重要
第一次接触JDK11安装的朋友们,最容易在下载环节就踩坑。打开Oracle官网你会发现,光是JDK11就有好几种不同的版本,比如Oracle JDK和OpenJDK。这里我建议新手直接选择Oracle JDK11,因为它的兼容性和稳定性都经过充分验证。
下载时要注意操作系统位数,现在大多数电脑都是64位系统。如果你不确定自己的系统类型,可以右键点击"此电脑"选择"属性"查看。我遇到过不少朋友因为下载了32位版本导致后续安装失败的案例,白白浪费了时间。
下载地址推荐直接访问Oracle官网的Java SE下载页面。这里有个小技巧:官网有时需要注册账号才能下载,如果觉得麻烦,可以在搜索引擎中输入"JDK11 direct download"找找直接下载链接。不过要注意辨别安全性,别下到带病毒的文件。
2. 安装JDK11的注意事项
下载完成后,双击安装包开始安装。这里有个重要建议:不要使用默认的安装路径!C盘的Program Files目录虽然看起来正规,但路径中的空格有时会导致奇怪的问题。我习惯安装在D:\Java\jdk-11这样的路径下,简单明了。
安装过程中,你会看到一个"安装JRE"的选项。这里要特别注意:JDK11默认不会安装独立JRE,这是与JDK8的一个重要区别。不用紧张,后面我会教你如何手动生成JRE。
安装完成后,建议立即检查安装目录。正常应该能看到这些文件夹:
- bin:包含javac、java等关键工具
- conf:配置文件目录
- include:C语言头文件
- jmods:模块化系统文件
- legal:许可证信息
- lib:库文件
3. 手动生成JRE的完整步骤
JDK11开始,Oracle不再提供独立的JRE安装包,但这不代表我们不需要JRE。很多老项目或工具仍然依赖JRE环境。好在JDK11自带了一个强大的jlink工具,可以让我们自定义生成JRE。
具体操作如下:
- 打开命令提示符(cmd),导航到JDK安装目录
- 执行以下命令:
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre这个命令会创建一个精简版的JRE,只包含java.desktop模块(包含AWT、Swing等图形组件)。如果你想包含更多模块,可以继续添加,比如:
bin\jlink.exe --module-path jmods --add-modules java.desktop,java.sql --output jre我实测过,生成的JRE大约150MB左右,比完整JDK小很多。这对于需要分发Java应用程序的场景特别有用。
4. 环境变量配置的现代方法
配置环境变量是让系统找到Java的关键步骤。JDK11相比老版本有个重大改进:不再需要配置CLASSPATH!很多网上的教程还在教配置CLASSPATH,这完全是过时的方法。
正确配置只需要两步:
新建JAVA_HOME变量:
- 变量名:JAVA_HOME
- 变量值:你的JDK安装路径(如D:\Java\jdk-11)
编辑Path变量:
- 添加:%JAVA_HOME%\bin
- 如果你生成了JRE,还可以添加:%JAVA_HOME%\jre\bin
在Windows 10/11中配置Path变量时,建议使用"新建"按钮单独添加,而不是像老教程说的那样用分号分隔。这样更清晰,也避免出错。
5. 验证安装是否成功
配置完成后,需要验证是否成功。打开新的命令提示符(重要!必须新开窗口才能加载新环境变量),依次执行三个命令:
java -version javac -version javap -version正确的输出应该都显示JDK11的版本信息。如果出现"不是内部或外部命令"的错误,说明环境变量配置有误。常见问题包括:
- Path中路径写错了
- JAVA_HOME路径包含中文或特殊字符
- 忘记在新窗口测试
6. 常见问题排查指南
根据我的经验,新手常遇到这些问题:
问题1:java命令可用,但javac不可用解决:这说明只配置了JRE路径,没配置JDK的bin目录。检查Path变量是否包含%JAVA_HOME%\bin
问题2:版本号显示不正确解决:可能是系统中有多个Java版本。使用where java命令查看系统找到的java.exe路径,删除或调整Path中的顺序。
问题3:安装后IDE找不到JDK解决:大多数IDE需要手动指定JDK路径。在IDE设置中找到JDK/JRE配置,手动添加你的JDK11安装路径。
7. 进阶技巧:多版本共存管理
如果你需要同时使用多个Java版本(比如同时维护JDK8和JDK11的项目),可以使用这些技巧:
- 每个版本安装在不同目录
- 通过修改JAVA_HOME快速切换
- 或者使用第三方工具如Jabba、SDKMAN
我个人的习惯是为每个项目配置不同的JAVA_HOME,在项目文档中明确记录所需的Java版本。这样可以避免很多兼容性问题。
8. 为什么选择JDK11?
你可能好奇为什么要选择JDK11而不是更新的版本。主要原因包括:
- 它是长期支持(LTS)版本,维护到2026年
- 相比JDK8有显著性能提升
- 引入了var局部变量推断等实用特性
- 模块化系统让应用更轻量
我在生产环境中使用JDK11已经三年多,稳定性非常好。虽然现在已经有更新的LTS版本如JDK17,但JDK11仍然是很多企业的首选。