如何在 Windows 上更改 Java 运行时版本 (7)?更改 Windows 7 上的 Java 默认 VM

2022-08-31 15:58:55

如何在Windows上更改Java运行时版本。

我为一些测试安装了Java 7,现在我需要旧的java6作为系统默认值,但我不想卸载Java 7(我需要它进行以后的测试)。是否可以在控制面板/Java/JRE 选项卡中更改系统使用的 JRE?我可以更改/编辑/添加/删除用户使用的版本,但不能更改/编辑/添加/删除系统使用的版本。


答案 1

对于 Java 应用程序,即(通常)作为文件交付并使用或通过执行相同操作的快捷方式启动的程序,将启动的 JRE 将是 ..jarjava -jar xxx.jarPATH

如果您安装了 JRE 或 JDK,则可能找到 s 的位置位于目录(如 .但是,我发现一些“开箱即用”的Windows安装(也?)具有和 in(NT和2000)或(Windows 95,98)的副本。这通常是一个非常古老的Java版本:1.3,也许?您需要在命令窗口中检查您是否没有运行某些过时的Java版本。.exeC:\Program Files\JavaSoft\JRE\x.y.zjava.exejavaw.exeC:\winnt\system32C:\windows\systemjava -version

当然,您可以通过在命令行或快捷方式定义中显式声明java.exe / javaw.exe的路径来覆盖PATH设置,甚至不覆盖PATH设置。


如果您从浏览器运行小程序,或者可能也运行 Java Web Start 应用程序(只要它们有自己的窗口,它们看起来就像应用程序,但您可以从浏览器启动它们),JRE 的选择由一组注册表设置决定:

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

即一个用于主要版本,另一个包含次要版本号。这些键中的每一个都有如下值(所示示例):

JavaHome    : C:\program Files\JavaSoft\JRE\1.3.1
RuntimeLib  : C:\Program Files\JavaSoft\JRE\1.3.1\bin\hotspot\jvm.dll
MicroVersion: 1

...您的浏览器将查看这些设置以确定要启动的 JRE。

由于Java版本变化非常频繁,现在有一个名为“Java控制面板”的“向导”,用于手动切换浏览器的Java版本。这适用于IE,Firefox以及Opera和Chrome等其他应用程序:它是Windows应用程序中的“Java”小程序。您可以选择任何一个已安装的 JRE。我相信向导会摆弄这些注册表项。System Settings

如果你像我一样,通过简单地擦除目录来“卸载”旧的Java版本,你也会在选择中找到这些“幽灵”;因此,请确保您选择的 JRE 对应于完整的 Java 安装!


其他一些答案是建议设置环境变量 。与此同时,这是过时的建议。Sun 在 Java 2 年左右意识到,这个环境设置是JAVA_HOME

  1. 不可靠,因为用户经常错误地设置它,以及
  2. 没有必要,因为运行时很容易找到Java库目录,知道它们相对于java.exe或javaw.exe启动的路径处于固定路径中。

几乎没有任何现代Java软件需要或尊重环境变量。JAVA_HOME


更多信息:

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


答案 2

我曾经在类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版本1.7:java -version

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-一旦完成:

  • 右键单击“我的电脑”,然后选择“属性”。
  • 在“高级”选项卡上,选择“环境变量”,然后编辑/创建JAVA_HOME以指向 JDK 软件所在的位置,在本例中为 C:\Program Files\Java\CurrentVersion

推荐