关于更换JDK后启动Eclipse时提示版本过低的一个解决方案

背景: 

在工作中, 我们可能会碰到多个jdk共存, 未额外安装任何jre, 并且我们使用的是低版本的jdk, 高版本的开发工具, 此文讲述使用的eclipse的运行环境是jre1.8, 其他版本遇到类似情况也可以参考此文给出的解决方案.

开发环境:

a. JDK版本: jdk1.7.0_80 jdk1.8.0_144

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第1张图片

图1 已安装的JDK

b. Eclipse版本:  Oxygen Release (4.7.0)

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第2张图片

图2 Oxygen登录界面

问题:

我们知道eclipse是由Java开发的, 所以它的运行是需要Java的运行环境的, 所以事先已经完成jdk1.7 和 jdk1.8的安装, 由于jdk自带jre, 所以无需额外安装jre. 

完成eclipse安装后, 运行eclipse, 发现并不能正常启动eclipse, 提示如下错误, 大意是1.7版的JVM无法适用于此版本的eclipse, 需要一个1.8或者更高版本的JVM.

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第3张图片

图3 JVM版本不匹配


解决方案1(不推荐):

卸载jdk1.8, 并且附带安装jre1.8, 这是一个可以解决eclipse启动问题的笨方法, 但是当我们不需要额外的jre的时候, 或者说jre会影响我们项目开发的时候, 这个方案是不可行的. 


解决方案2(推荐):

因为我们有了jdk1.8, 所以就有了jre1.8和jvm1.8, 所以我们肯定有办法让eclipse在启动的时候找到正确的jvm. 

可是为什么eclipse不能正常启动呢?

答案很简单, 很多软件在启动的时候都会去检测环境变量里的配置, eclipse启动的时候也不例外. 我们在安装jdk1.8的时候, 软件会更改环境变量中的path路径, 额外并且在path变量的最前面加上了"C:\ProgramData\Oracle\Java\javapath;"(这是一个默认路径), 所以eclipse在启动的时候, 极大程度就检测不到最高版本的jvm了, 我们可以通过"java -version"命令确认这个情况. 

也就是说就算你安装上jdk1.8, 但是通过"java -version"命令看到的结果并不是关于1.8如图4, 预期效果图见图7:

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第4张图片

图4 运行环境为1.7

接下来我们只需要将这段新增的路径放在path变量的最后面即可, 并且我们需要找到jre的bin目录("D:\develop\Java\jdk1.8.0_144\jre\bin;"), 将其添加到path变量的最前面,(这是解决此问题的关键) 这样就算是朝着成功迈出了坚实的一步.

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第5张图片

图5 jre中的bin目录

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第6张图片

图6 path中的变量值

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第7张图片

图7 修改path变量值后的"java -version"命令

接下来,我们重新启动eclipse就可以看到图2的登录界面了, 更改一下环境变量就可以

去安装jre的麻烦, 并且成功避免jre带来的潜在问题, 感觉整个世界都变好了.


附:

登录问题是解决了, 作为一套完整的解决方案, 此处讲解eclipse的一些其他配置.


问题描述1: 很多老项目飘红(本来是红叉的, 我进行图8操作后就变成红色感叹号了,

我觉得没有必要额外卸载重新演示这个细节).

解决方案: Window-->preference-->Java-->compiler-->JDK Compliance

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第8张图片

图8 修改默认编译的JDK版本

此时, 我们只需要再次build path一下就大功告成了.

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第9张图片

图9 右键带有红色感叹号的项目

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第10张图片

图10 修改jre版本, 建议使用工作空间默认的jre

关于更换JDK后启动Eclipse时提示版本过低的一个解决方案_第11张图片

图11 完成,项目可用

至此, eclipse(4.7.0)已经可以正常使用了.

你可能感兴趣的:([开发工具])