公司项目中应用到的jdk环境为1.7,自己平常的一些开发学习需要用到jdk1.8,为了解决这个问题所以需要jdk多版本共存,并且随时可以很方便的切换。此处以两个版本举例,更多版本共存问题与此类似。
1.安装jdk1.7 和 jdk 1.8
后安装的版本会默认覆盖值钱的版本,如果先安装jdk1.7后安装jdk1.8,安装好后命令行
java -version
将提示版本信息为1.8
2.设置多环境
JAVA8_HOME =jdk1.8的安装路径
JAVA7_HOME =jdk1.7的安装路径
JAVA_HOME = %JAVA7_HOME% (注意:如果你想切换jdk,就在此处设置即可)
如下图:
在path中添加
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3.问题解决:
1.环境变量配置后,但是安装以后出现以下问题:
通过java -version 查看显示,jdk显示为:jdk1.8
分析:
当前jdk版本为1.8,这不科学,因为环境变量中配置的JAVA_HOME是1.7的路径,查看版本应该要是1.7的才对,现在变成1.8,jdk的环境变量未被改变,通过查询后发现问题:
在安装JDK1.8时(本机先安装jdk1.7再安装的jdk1.8),自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。
2.再次通过java -version 查看显示,jdk显示为:jdk1.8
分析:
先将JAVA_HOME设为空值,再次java -version,仍然显示:jdk1.8
说明path中 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 这两行环境变量并没有生效,也就是说系统并没有从我们刚才指定的位置去执行java.exe
回去继续查看path中所有的变量,win10的话界面比较友好,容易查看,win7可以把path值复制到一个文本文件里手动分条整理。
结果发现首行有一条C:\ProgramData\Oracle\Java\javapath;应该与这个问题有关, 然后在资源管理器中打开这个路径(找不到ProgramData,请设置显示隐藏的文件夹)
发现有类似快捷方式一下的java.exe、javaw.exe、javaws.exe三个可执行文件,至此找到的问题所在。
回到环境变量管理 path下删除 C:\ProgramData\Oracle\Java\javapath;这条记录
把JAVA_HOME设为需要使用的java_home版本 例如:JAVA_HOME = %JAVA7_HOME%
再次命令行执行java -version,显示jdk版本为1.7
自此修改成功,以后切换只需修改JAVA_HOME值为需要使用的java_home版本即可。