Windows上安装jdk1.7和1.8共存

刚开始电脑上只安装了jdk1.7,后来又安装了1.8。于是在电脑上修改了系统变量,安装1.8之前的系统变量JAVA_HOME为:

JAVA_HOME=D:\Program Files\Java\jdk1.7.0_80

安装1.8之后修改了JAVA_HOME,并添加了两个新变量JAVA7_HOME和JAVA8_HOME,如下:

JAVA_HOME=%JAVA7_HOME%

JAVA7_HOME=D:\Program Files\Java\jdk1.7.0_80

JAVA8_HOME=C:\Program Files\Java\jdk1.8.0_201

 本来以为切换jdk版本只需修改JAVA_HOME所对应的值就行了,但事实并非如此。无论你修改为1.7还是1.8,命令行窗口中查看jdk版本是都是1.8.这是为何呢?原来在jdk1.8安装的时候,会自动在系统变量Path的最前面加上

C:\Program Files (x86)\Common Files\Oracle\Java\javapath;

而这个路径里面放着java.exe、javaw.exe和javaws.exe三个程序。由于这个路径是放在系统变量Path的最前面,所以无论我们如何切换执行的都是这个路径里面的程序,应该将这个路径删除掉。然后就可以自由切换了。

注意删除之后有可能出现“has value '1.8',but'1.7' is required”的错误,如下图:

Windows上安装jdk1.7和1.8共存_第1张图片

这是因为C:\Windows\System32路径中的java.exe、javaw.exe和javaws.exe三个程序的版本和注册表中的版本不一致的原因。要解决这个问题有两种方法:

1. 在注册表下找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft文件夹下的Java Development Kit和Java Runtime Environment,点击这两个文件夹,右侧会有CurrentVersion,右键点击CurrentVersion可修改版本为1.7或1.8,这个版本必须和上述目录中的三个程序的版本一致,否则就会出现上述问题。

Windows上安装jdk1.7和1.8共存_第2张图片

2.还有一种方法是直接把C:\Windows\System32路径中的这三个程序直接删除,这样就不用修改注册表了,我就是这么干的,暂时没发现啥问题。

你可能感兴趣的:(Java)