答案 0 :(得分:74)
对于Java 应用程序,即(通常)作为.jar
文件提供并以java -jar xxx.jar
或通过执行相同操作的快捷方式提供的程序,将使用的JRE推出将是PATH
上发现的第一个。
如果您安装了JRE或JDK,则查找.exe
的可能位置位于C:\Program Files\JavaSoft\JRE\x.y.z
之类的目录之下。但是,我发现一些“开箱即用”的Windows安装(也是?)在java.exe
(NT和2000)或{{1}中都有javaw.exe
和C:\winnt\system32
的副本(Windows 95,98)。这通常是Java的老版本:1.3,也许吧?您需要在命令窗口中执行C:\windows\system
以检查您是否运行了一些过时的Java版本。
当然,您可以通过在命令行或快捷方式定义中明确声明java.exe / javaw.exe的路径来覆盖PATH设置,甚至不使用它。
如果您正在从浏览器运行小程序,或者也可能 Java Web Start应用程序(它们看起来像应用程序,因为它们有自己的窗口,但您启动它们来自浏览器),JRE的选择由一组注册表设置决定:
java -version
使用此方案创建更多注册表项:
Key: HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment
Name: CurrentVersion
Value: (e.g.) 1.3
即。一个用于专业,一个用于次要版本号。这些键中的每一个都具有这些值(示例):
(e.g.)
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.3
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.3.1
...并且您的浏览器将查看这些设置以确定要启动哪个JRE。
由于Java版本经常发生变化,现在有一个名为“Java控制面板”的“向导”,用于手动切换浏览器的Java版本。这适用于IE,Firefox以及其他可能的Opera和Chrome:它是Windows JavaHome : C:\program Files\JavaSoft\JRE\1.3.1
RuntimeLib : C:\Program Files\JavaSoft\JRE\1.3.1\bin\hotspot\jvm.dll
MicroVersion: 1
应用程序中的“Java”小程序。您可以选择任何一个已安装的JRE。我相信该向导会对这些注册表项进行调整。
如果你像我一样,只需擦除目录就可以“卸载”旧的Java版本,你也可以在选择中找到这些“幽灵”;所以请确保您选择的JRE对应于完整的Java安装!
其他一些答案建议设置 environment 变量System Settings
。这是同时过时的建议。在Java 2中,Sun开始意识到这种环境设置是
几乎没有任何现代Java软件需要或尊重JAVA_HOME
环境变量。
更多信息:
...以及有关多版本支持的一些有用信息:
答案 1 :(得分:58)
我习惯在类UNIX机器上工作,但最近我不得不在Windows 7机器上使用Java做一些工作。我遇到了这个问题,这就是我解决了这个问题。它对我有用,所以我希望它可以用于将来可能遇到这个问题的人。
考虑到驱动器C上的默认Java安装,会暴露这些步骤。如果您的安装不是默认安装,则应更改必要的内容。
假设我们已经安装了Java 8,但出于任何原因我们希望保留Java 7。
1-以管理员身份启动cmd
2-转到C:\ProgramData\Oracle\Java
3-将当前目录 javapath 重命名为 javapath_< version_it_refers_to> 。例如:rename javapath javapath_1.8
4-创建 javapath_< version_you_want_by_default> 目录。例如:mkdir javapath_1.7
5- cd进入它并创建以下链接:
cd javapath_1.7
mklink java.exe "C:\Program Files\Java\jre7\bin\java.exe"
mklink javaw.exe "C:\Program Files\Java\jre7\bin\javaw.exe"
mklink javaws.exe "C:\Program Files\Java\jre7\bin\javaws.exe"
6- cd并创建指向所需javapath的目录链接 javapath 。例如:mklink /D javapath javapath_1.7
7-打开注册表并更改密钥 HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ CurrentVersion ,使其值为1.7
此时如果执行java -version
,您应该会看到使用的是java版本1.7:
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
8-最后创建环境变量JAVA_HOME是个好主意。为此,我在C:\ Program Files \ Java中创建一个名为CurrentVersion的目录链接,指向我感兴趣的Java版本。例如:
cd C:\Program Files\Java\
mklink /D CurrentVersion .\jdk1.7.0_71
9-一旦完成:
答案 2 :(得分:25)
从Java 1.6开始,在%windir%\ system32中安装了一个java.exe,它支持“-version”命令行选项。您可以使用它来选择要运行的特定版本,例如:
java -version:1.7 -jar [path to jar file]
将在java 1.7中运行jar应用程序(如果已安装)。
请参阅此处的Oracle文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html
答案 3 :(得分:6)
根据浏览器的建议,我将Java版本更新为8。但是我选择卸载之前用于编码项目的Java 6版本。当我输入命令时 " java -version"在 cmd 中它显示1.8并且我无法启动在Java 1.6上运行的eclipse IDE。
当我为浏览器安装Java 8更新时,它已经更改了" PATH"系统变量附加" C:\ ProgramData \ Oracle \ Java \ javapath"到了开头。新添加的路径指向Java vesion 8.所以我从" PATH"中删除了该路径。系统变量,一切正常。 :)
答案 4 :(得分:4)
转到控制台 - > Java的 您可以在此处选择活动版本
答案 5 :(得分:3)
答案 6 :(得分:0)
答案 7 :(得分:0)
如果您使用的是Windows 10或Windows Server 2012,则更改Java运行时版本的步骤如下: