如果安装了Java 8,则无法使用Java 7安装

时间:2014-05-26 21:06:41

标签: java windows

我通常仍然将Java 7用于我的所有编码项目(这是公司的“政治”问题),但是我为一个我正在贡献的第三方项目安装了Java 8。现在,似乎我不能在Windows 7 x64中安装Java 8,并且默认情况下仍然使用Java 7:

C:\>"%JAVA_HOME%\bin\java.exe" -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

C:\>java.exe -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

如您所见,JAVA_HOME完全被忽略。

我在路径中也有Java,使用“%JAVA_HOME%\ bin”,当我在DOS框中检查路径时,它正确地解析为Java 7,但它仍然没有区别。

我检查了“Java控制面板”(不确定这是否会影响默认的命令行Java版本)。在“Java”选项卡的“View ...”按钮下,您可以看到“已注册”的Java版本。我可以在“用户”选项卡下添加所有版本,但在“系统”下只有Java 8,无法更改它。

我是否遗漏了某些东西,或者甲骨文只是让它无法使用Java 7,除非我卸载Java 8?我不想在任何地方指定“源”和“目标”,我甚至不知道是否可以在任何地方指定它,使用Java。

编辑:我做的是我卸载了所有Java。然后安装最新的Java7(86和x64),然后安装最新的Java8(86和x64)。在我这样做之后,我注意到x64 JDK 已经消失了。似乎Java8杀了它。所以我在 JDK 8 x64之后重新安装了JDK 7 x64,。尽管如此,JDK7 x64似乎并没有“替换”复制到“Windows”目录本身的“java.exe”(我认为这就是问题)。

6 个答案:

答案 0 :(得分:10)

当你安装jdk8时,它会添加一个这样的条目

  

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

PATH 环境变量的开头,删除此条目可以解决您的问题。

答案 1 :(得分:3)

您可以使用-version:选项从命令行中选择JRE版本。

> java -version:"1.7" MyClass
如果安装正确,

应选择1.7 JRE。

正确安装的JRE列表位于注册表中,请参阅密钥:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment  (32bit)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment  (64bit)

您可以设置" CurrentVersion"如果你想要一个不同于最新版本的默认版本。

请参阅http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html#options

不要修改您的PATH以指向特定的JRE,让Windows / system32中的特殊java.exe完成这项工作。

答案 2 :(得分:2)

Windows和Unix都使用PATH环境变量查找程序。您java.exe中的Windows\System32出现在{"首选"}之前Java版本。

将PATH更改为您需要的路径,或在需要其他版本时指定完整路径。

答案 3 :(得分:1)

2个步骤

1

将注册表项**HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion**更改为指向1.7

2

将{1.7}版本的java.exe,javaw.exe and javaws.exe复制到Windows\System32文件夹 (由于java 1.8的相应文件已经存在,您可能必须使用管理员权限覆盖)

3

(OOps实际上不需要第3步) 打开 cmd窗口并检查 java -version

答案 4 :(得分:1)

看起来您必须检查PATH中JAVA_HOME变量的位置,从左到右评估PATH。一个提示是在PATH的开头进行所有Java系统变量配置。

PATH = %M2_HOME%\bin;%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;...

这可能就是为什么这样做之后:

- java -version

你得到了这个:

- java version "1.8.0_05"

因为PATH中还有其他区域指向其他java.exe,例如C:\ Windows \ System32或C:\ ProgramData \ Oracle \ Java \ javapath等。

答案 5 :(得分:0)

我必须进行2次更改才能正常工作:

  1. 将注册表项'Software \ JavaSoft \ Java Runtime Environment'\ CurrentVersion'从1.8更改为1.7
  2. Java 8安装向PATH环境变量'C:\ ProgramData \ Oracle \ Java \ javapath'添加一个新条目。我从PATH中删除了这个条目。