我必须在Windows 10上切换Java 7和Java 8.
我已安装:
C:\Program Files\Java\jre1.8.0_91
C:\Program Files\Java\jre7
在我的PATH中有一个通用路径(包含指向java可执行文件的链接)。这是所有环境变量中唯一的java值:
Path=C:\ProgramData\Oracle\Java\javapath;..
当我想运行Java 8时,我创建了3个到C:\Program Files\Java\jre1.8.0_91
的实际链接(使用命令mklink /H [link] [origin]
):
C:\ProgramData\Oracle\Java\javapath\java.exe >> C:\Program Files\Java\jre1.8.0_91\bin\javapath\java.exe
C:\ProgramData\Oracle\Java\javapath\javaw.exe >> C:\Program Files\Java\jre1.8.0_91\bin\javapath\javaw.exe
C:\ProgramData\Oracle\Java\javapath\javaws.exe >> C:\Program Files\Java\jre1.8.0_91\bin\javapath\javaws.exe
使用此配置可以。
但是,当我想运行Java 7时,我创建了3个到C:\Program Files\Java\jre7
的真实链接:
C:\ProgramData\Oracle\Java\javapath\java.exe >> C:\Program Files\Java\jre7\bin\javapath\java.exe
C:\ProgramData\Oracle\Java\javapath\javaw.exe >> C:\Program Files\Java\jre7\bin\javapath\javaw.exe
C:\ProgramData\Oracle\Java\javapath\javaws.exe >> C:\Program Files\Java\jre7\bin\javapath\javaws.exe
当我尝试运行java时,它不起作用!我收到以下错误:
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll Error: Could not find Java SE Runtime Environment.
有一种解决方法,但我不喜欢它。我只能这样使用Java 7:
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files\Java\jre7\bin;
添加到%PATH%我不喜欢这个解决方案,因为它与以前的配置不同,因为我每次都要从PATH中手动删除该值。
答案 0 :(得分:2)
很高兴知道Oracle的推荐方式是什么,但无法找到这些信息。以下可能是一个合理的 hack 解决方法(我过去使用过类似的方法)。
创建联结(或符号链接):
mklink /j "C:\Program Files\Java\jre" "C:\Program Files\Java\jre1.8.0_102"
然后从C:\ProgramData\Oracle\Java\javapath
移除PATH
,并将其替换为C:\Program Files\Java\jre\bin
。
现在,只要您想切换到Java 7,只需执行:
rd "C:\Program Files\Java\jre"
mklink /j "C:\Program Files\Java\jre" "C:\Program Files\Java\jre7"
这是有效的,因为当您现在键入java
时,它会在C:\Program Files\Java\jre\bin\java.exe
中找到它(来自PATH)。可执行文件知道它所在的目录,并查找其他文件(jar,DLL等)。由于jre
现在是jre7
的别名,因此它会找到正确的别名。因为它找到了它们,所以它不会在注册表中查找。
当然,您可以创建一个批处理文件或快捷方式图标,其中包含在两个版本之间切换的命令。
答案 1 :(得分:0)
我不是100%,但我相信您可能必须将JAVA_HOME变量设置为您想要使用的版本。