CMD查询Java版本为11但Eclipse显示Java17是什么原因
版本不一致的核心原因
两个查询结果版本不匹配,本质是二者读取的根本不是同一个Java运行环境,配置上没有强制绑定关系:
- 你在CMD中执行
java -version时,系统只会遍历PATH环境变量里配置的目录优先级,找到排在最前面的java.exe可执行文件返回对应版本,你当前系统全局默认配置的Java版本是11.0.15。 - Eclipse运行Java代码时,不会直接复用系统全局的Java配置,它会维护独立的已注册JDK/JRE列表,运行项目时优先读取项目构建路径、运行配置里指定的JDK环境。你当前Eclipse给运行程序绑定的是JDK 17.0.2,所以
System.getProperty("java.version")会返回17.0.2的结果。
补充说明:Eclipse自身启动用的JDK、系统全局默认JDK、项目运行用的JDK三者是完全独立的,哪怕三个版本都不一样也属于正常情况,不会影响正常使用,不需要刻意统一。
版本对齐调整方法
如果需要让Eclipse里的查询结果和CMD结果一致,可以按以下步骤修改配置:
- 打开Eclipse的
Window > Preferences > Java > Installed JREs页面,点击Add按钮添加你系统中安装的11.0.15版本JDK的本地路径,添加完成后把它勾选为默认JRE。 - 右键对应项目,打开
Properties > Java Build Path页面,切换到Libraries标签,把现有的JRE System Library替换为刚添加的JDK 11。 - 打开对应启动项的
Run Configurations配置页,确认JRE选项选中的是项目配置的JDK 11,保存配置后重新运行代码,返回的版本就会和CMD查询结果一致。
内容的提问来源于stack exchange,提问作者Umang
相关产品推荐
相关产品推荐

