我们怎样才能改变使用的java版本

时间:2016-02-23 07:14:28

标签: java windows

我的机器上安装了多个java版本(os Windows 8)。我有java 1.6,1.7& 1.8安装在我的机器上。我只为版本1.6设置了路径环境变量,如Java_Home&作为Java_Home8的1.8。

但奇怪的是,当我在命令提示符下键入java -version时,它指的是jdk 1.7版本。但奇怪的是,我查看了路径环境变量,我找不到导致jdk 1.7安装文件夹的路径。我没有为jdk 7创建任何单独的路径变量。我也没有将它包含在路径中。但是当我打开命令提示符并输入java -version时,它仍然指向java 7.下面是路径变量的内容

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jre1.8.0_60\bin;C:\Program Files\Java\jre1.6.0_07\bin;%M2%;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_07\bin;C:\Program Files\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;

有人可以解释这是怎么发生的。我的假设是当我执行java -version命令时,它引用路径变量中提供的版本。但事情并非如此。你能解释一下它的原因以及它如何选择/显示java 7版本。

2 个答案:

答案 0 :(得分:3)

Windows上的Java安装程序还会将java.exejavaw.exejavaws.exe放入目录

  

C:\ Windows \ System32下

至少,Java 7做到了这一点。 Java 8将相同的文件放入

  

C:\ ProgramData \甲骨文\爪哇\ javapath

并将此目录放入PATH环境变量中。

上面提到的系统directoy是PATH变量中提到的第一个目录:%SystemRoot%\system32。因此,您可以根据需要将尽可能多的Java二进制目录放入PATH变量中......只需调用java ...将始终从系统目录启动程序 - 我想这将是Java 7。

解决方案?从系统目录中删除它们。哦,并清理一下你的PATH变量。提到了多个Java目录。通常,您只需要一个。如果您暂时需要其他Java,请参阅@ slartidan的答案,了解如何操作。

答案 1 :(得分:0)

在Windows中,JRE的最后一次设置通常在PATH环境变量中注册。

JAVA_HOME被许多发射器等使用,但不会更改windows apllication启动(例如,双击jar文件或在命令提示符下键入java)。

我建议始终指定java的完整路径,如下所示:

C:\Program Files\Java\jdkxy\bin\java - version

%JAVA_HOME8%\bin\java -version

这样做的好处是,您甚至不必再安装java了。只需将您的一个java文件夹复制到任何其他PC,然后使用完全限定的路径运行java。