时间:2010-07-26 09:20:14

标签: java windows registry controls panel

8 个答案:

答案 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.exeC:\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开始意识到这种环境设置是

  1. 不可靠,因为用户经常设置错误,
  2. 不必要,因为运行时很容易找到Java库目录,知道它们位于相对于启动java.exe或javaw.exe的路径的固定路径中。
  3. 几乎没有任何现代Java软件需要或尊重JAVA_HOME环境变量。


    更多信息:

    ...以及有关多版本支持的一些有用信息:

答案 1 :(得分:58)

我习惯在类UNIX机器上工作,但最近我不得不在Windows 7机器上使用Java做一些工作。我遇到了这个问题,这就是我解决了这个问题。它对我有用,所以我希望它可以用于将来可能遇到这个问题的人。

考虑到驱动器C上的默认Java安装,会暴露这些步骤。如果您的安装不是默认安装,则应更改必要的内容。

在Windows 7上更改Java默认VM

假设我们已经安装了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-一旦完成:

  • 右键单击“我的电脑”,然后选择“属性”。
  • 在Advanced选项卡上,选择Environment Variables,然后编辑/创建JAVA_HOME以指向JDK软件所在的位置,在这种情况下,C:\ Program Files \ Java \ CurrentVersion

答案 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运行时版本的步骤如下:

  1. 使用“运行”
  2. 打开注册表
  3. 导航至HKEY_LOCAL_MACHINE - >软件 - > JavaSoft - > Java运行时环境
  4. 在这里,您将看到您在PC上安装的所有Java版本。对我来说,我安装了几个版本的java 1.8,因此这里显示的文件夹是1.8,1.8.0_162和1.8.0_171
  5. 单击“1.8”文件夹,然后双击JavaHome和RuntimeLib键,将版本号更改为您希望PC运行的任何Java版本。例如,如果密钥的值数据是“C:\ Program Files \ Java \ jre1.8.0_171”,则可以将其更改为“C:\ Program Files \ Java \ jre1.8.0_162”。
  6. 然后,您可以通过在命令行上键入“java -version”来验证版本更改。