如何在其他Java版本的机器上安装Java 8

我在其他几个版本的机器上安装了Java 8(jdk-8u60-windows-x64.exe)。

安装后,我看到以下消息

d:\Userprofiles\user>java -version Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.8', but '1.7' is required. Error: could not find java.dll Error: Could not find Java SE Runtime Environment. 

我可以将JAVA_HOME更改为新位置,但这不能解决上述问题。

当我编辑注册表并将几个注册表项中的1.8更改为1.7我再次有一个工作配置。 但这仍然是1.7.

改变JAVA_HOME似乎没有任何效果。 当我将其更改为我新安装的JDK时

 d:\Userprofiles\user>java -version java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) d:\Userprofiles\user>echo %JAVA_HOME% D:\Program Files\Java\jdk1.8.0_60 

如何在我的机器上运行1.8,我需要做什么? JAVA_HOME现在似乎已经过时了,我应该更改注册表吗? 我应该怎么做才能更改注册表以便获得1.8版本?

仅引入%JAVA_HOME%的值是不够的(实际上,Java并不关心是否存在这样的环境变量)。

您要做的是将%JAVA_HOME%/bin目录附加到Path环境变量,以便获得与%JAVA_HOME%版本匹配的java.exe ,而无需写入java.exe可执行文件的完整路径你想要触发。

所以,要么这样做:

  • %JAVA_HOME%环境变量设置一个值
  • %JAVA_HOME%/bin附加到Path环境变量

要不就

  • /bin附加到Path变量。

就个人而言,我更愿意维护JAVA_HOME的值,因为Maven,Hadoop等工具需要它。

您可以根据需要安装尽可能多的JDK,甚至在PATH中也不需要它们,或者设置JAVA_HOME。

在PATH中找到的第一个将是默认的。 请记住只安装JDK,而不是JDK随附的JRE,即在安装时取消选择第3个选项。

我安装了9个 JDK,我可以在不改变任何内容的情况下运行所有​​这些JDK。 您所要做的就是限定可执行文件:

 C:\>prog\java32\jdk1.4.2_19\bin\java.exe -version java version "1.4.2_19" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04) Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode) C:\>prog\java32\jdk1.5.0_22\bin\java.exe -version java version "1.5.0_22" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode) C:\>prog\java32\jdk1.6.0_45\bin\java.exe -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing) C:\>prog\java32\jdk1.7.0_79\bin\java.exe -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing) C:\>prog\java32\jdk1.8.0_51\bin\java.exe -version java version "1.8.0_51" Java(TM) SE Runtime Environment (build 1.8.0_51-b16) Java HotSpot(TM) Client VM (build 25.51-b03, mixed mode, sharing) C:\>prog\java64\jdk1.5.0_22\bin\java.exe -version java version "1.5.0_22" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode) C:\>prog\java64\jdk1.6.0_45\bin\java.exe -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) C:\>prog\java64\jdk1.7.0_79\bin\java.exe -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) C:\>prog\java64\jdk1.8.0_51\bin\java.exe -version java version "1.8.0_51" Java(TM) SE Runtime Environment (build 1.8.0_51-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode) 

这是单个命令提示符中的输出,没有设置PATH。