我通常仍然将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”(我认为这就是问题)。答案 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)
将注册表项**HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion**
更改为指向1.7
将{1.7}版本的java.exe,javaw.exe and javaws.exe
复制到Windows\System32
文件夹
(由于java 1.8的相应文件已经存在,您可能必须使用管理员权限覆盖)
(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次更改才能正常工作: