背景说明
其实只是学习Android的话,只要下载好Android Studio开发工具,是自带JDK环境的,所以不需要再额外去进行配置,我之所以还要进行单独配置,是因为我其他的工具需要Java的环境,而且我目前用的是JDK 12,因此还是要配置下。
然后就去看了下配置Classpath的路径,发现一搜基本全是差不多的教程,都是配置这样的路径【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】
本来配置好了也就可以了,但是我又多了个心眼,我去这个目录下看了下是不是有这两个文件,结果发现没有,然后我就不淡定了。
因为搜到的教程都是这么配置的,但是现在我发现JDK 12下没有这个文件,是不是我装错了?
最后一翻查找后发现,在安装JDK 12版本后,lib
目录下缺少dt.jar
和tools.jar
文件,这是JDK 12版之后的正常现象,无需担忧。
具体原因如下:
原因解析
-
JDK模块化改革
从JDK 9开始,Oracle对Java进行了模块化改造,移除了传统的rt.jar
、tools.jar
和dt.jar
等文件,改为更高效的模块化存储方式(位于jmods
目录)。这也是为什么JDK 12及更高版本中不再包含这些文件的根本原因。 -
JRE生成方式变更
JDK 12默认不包含独立的JRE文件夹,需通过命令行手动生成,而dt.jar
和tools.jar
的功能已被整合到模块化系统中,不再需要单独配置。
解决办法
1. 环境变量配置调整
-
无需配置CLASSPATH
从JDK 9开始,无需在CLASSPATH
中添加dt.jar
和tools.jar
,直接省略相关配置即可。
推荐的环境变量设置如下:JAVA_HOME = C:\Program Files\Java\jdk-12.0.1 Path = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
-
生成JRE(可选)
若需JRE,可在JDK安装目录下执行命令手动生成:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
注意需以管理员权限运行命令行。
2. 验证安装
- 打开命令提示符,输入以下命令验证:
若返回版本信息(如java -version # 查看Java版本 javac -version # 查看编译器版本
12.0.1
),则配置成功。
3. 避免安装路径覆盖
若使用旧版本JDK(如JDK 8),需确保安装时JDK和JRE路径不同,否则会导致文件覆盖。但此问题不适用于JDK 12及以上版本。
总结
介于此也发现一个问题,很多以前的教程由于很多原因,在如今搜索引擎下,还是会作为优先推荐展示出来,从而导致我们有时候参照了早已过时的环境配置。
最后,JDK 12的dt.jar
和tools.jar
缺失是版本升级后的正常现象,无需重新安装或修复。只需按新规范配置环境变量,并利用模块化特性即可。若需兼容旧项目,可考虑降级至JDK 8并注意安装路径分离。