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

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

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

对于Java 应用程序 ,即通常以.jar文件forms提供的程序,并且使用java -jar xxx.jar或通过相同的快捷方式启动的程序,JRE将在PATHfind第一个。

如果您安装了JRE或JDK,则可能find.exe的地方位于C:\Program Files\JavaSoft\JRE\xyz 。 但是,我发现一些“开箱即用”的Windows安装到(还有)在C:\winnt\system32 (NT和2000)或C:\windows\systemjava.exejavaw.exe副本Windows 95,98)。 这通常是一个相当老的Java版本:1.3,也许? 你会想在命令窗口中执行java -version来检查你是否运行一些过时的Java版本。

您当然可以覆盖PATH设置,甚至可以在没有它的情况下通过在您的命令行或快捷方式定义中明确指出java.exe / javaw.exe的path。


如果您从浏览器或Java Web Start应用程序 (它们看起来像应用程序,因为它们有自己的窗口,但是从浏览器启动它们)运行applet ,JRE的select由一组registry设置:

 Key: HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment Name: CurrentVersion Value: (eg) 1.3 

使用此scheme创build更多registry项:

 (eg) 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 System Settings应用程序中的“Java”小程序。 你可以select任何一个安装的JRE。 我相信巫师摆弄这些registry项。

如果你像我一样,通过简单的删除目录“卸载”旧的Java版本,你也会在这些select中find这些“鬼”。 所以请确保您select的JRE对应于完整的Java安装!


其他一些答案build议设置环境variablesJAVA_HOME 。 这是同时过时的build议。 Sun在Java 2周围认识到这个环境的设置是

  1. 不可靠的,因为用户经常设置不正确的
  2. 这是不必要的,因为运行时很容易findJava库目录,知道它们位于相对于java.exe或javaw.exe启动path的固定path中。

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


更多信息:

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

我使用类似UNIX的机器,但是最近我不得不在Windows 7机器上使用Java进行一些工作。 我有这个问题,这是我解决了它。 它适合我,所以我希望它可以用于谁将来可能有这个问题的人。

考虑到驱动器C上的默认Java安装,这些步骤是公开的。如果您的安装不是缺省安装,则应更改所需的步骤。

在Windows 7上更改Java默认VM

假设我们已经安装了Java 8,但由于某种原因,我们希望与Java 7保持一致。

1-以pipe理员身份启动cmd

2-转到C:\ProgramData\Oracle\Java

3-将当前目录javapath重命名为javapath_ <version_it_refers_to> 。 例如: rename javapath javapath_1.8

4-创build一个javapath_ <version_you_want_by_default>目录。 例如: mkdir javapath_1.7

5 – 进入它并创build以下链接:

 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出并创build一个目录链接javapath指向所需的javapath。 例如: mklink /D javapath javapath_1.7

7-打开registry并将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-最后,创build环境variablesJAVA_HOME是一个好主意。 为此,我在C:\ Program Files \ Java中创build一个名为CurrentVersion的目录链接,指向我感兴趣的Java版本。例如:

 cd C:\Program Files\Java\ mklink /D CurrentVersion .\jdk1.7.0_71 

9一旦完成,

  • 右键单击我的电脑,然后select属性。
  • 在高级选项卡上,select环境variables,然后编辑/创buildJAVA_HOME指向JDK软件所在的位置,在这种情况下,C:\ Program Files \ Java \ CurrentVersion

从Java 1.6开始,将java.exe安装到支持“-version”命令行选项的%windir%\ system32中。 您可以使用它来select要运行的特定版本,例如:

 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

一旦我按照浏览器的build议更新我的Java版本到8。 不过,我select卸载以前的Java 6版本,我已经用于编码我的项目。 当我在cmd中的“java -version”中input命令时,它显示了1.8,我无法启动在Java 1.6上运行的eclipse IDE。

当我为浏览器安装Java 8更新时,它已经将“PATH”系统variables添加到“C:\ ProgramData \ Oracle \ Java \ javapath”开头。 新添加的path指向Java的vesion 8.所以我从“PATH”系统variables中删除了这个path,一切正常。 🙂

转到控制面板 – > Java您可以在这里select活动版本

所有你需要做的就是在Windows中设置PATH环境variables来指向你的java6 bin目录而不是java7目录。

右键单击我的电脑>高级系统设置>高级>环境variables

如果有一个JAVA_HOME环境variables将其设置为指向正确的目录。

更新你的环境variables

确保在“path”中对java / bin的引用是最新的; 这可能是自动的,如果你有JAVA_HOME或同等的设置。 如果设置了JAVA_HOME,只需更新它以引用旧的JRE安装。