在Java8和Java7环境之间更改
我正在尝试在Java7和Java8环境之间切换。我创建了以下新的环境变量:在Java8和Java7环境之间更改,java,windows,environment-variables,Java,Windows,Environment Variables,我正在尝试在Java7和Java8环境之间切换。我创建了以下新的环境变量: JAVA7_HOME - java 7 location JAVA8_HOME - java 8 location JAVA_HOME 然后,我将JAVA_HOME设置为%JAVA8_HOME%或%JAVA7_HOME%。在我的道路上 %JAVA_HOME%\bin;REST OF PATH 似乎无论我将JAVA_HOME设置为什么,它都不会改变JAVA版本的结果,即使对于新会话也是如此 我们如何在两个独立的java
JAVA7_HOME - java 7 location
JAVA8_HOME - java 8 location
JAVA_HOME
然后,我将JAVA_HOME设置为%JAVA8_HOME%或%JAVA7_HOME%。在我的道路上
%JAVA_HOME%\bin;REST OF PATH
似乎无论我将JAVA_HOME设置为什么,它都不会改变JAVA版本的结果,即使对于新会话也是如此
我们如何在两个独立的java环境之间轻松切换?我已尝试将所有内容设置为正确的路径,包括:
HKEY_CURRENT_USER\Environment JAVA_HOME
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment CurrentVersion
甚至更改符号链接以指向我们想要的版本。我们创建了批处理脚本来完成这一切,我们创建了powershell/,net来完成这一切,然后进行广播,尝试设置所有内容并重新启动explorer。。在7和8之间切换似乎是不可能的
有人知道如何解决这个问题吗?基本问题是,由于某些原因,通过命令行更改环境变量不是永久性的。您必须通过用户界面设置新值。我过去经常执行以下操作:
java.exe
和javac.exe
。复制名为java8.exe
和javac8.exe
的可执行文件java7.exe
和javac7.exe
李>
现在可以调用java/javac、java7/javac7和java8/javac8。
(我不知道为什么会有人需要JAVA_回家,我从来没有设置过。)
其他可执行文件(如jar.exe等)将取自默认的jdk(路径中的第一个),这没关系,因为无论是哪个jar.exe创建的jar文件都是相同的
然后继续配置您需要的应用程序,如eclipse
希望您的构建工具也能被告知要使用哪些可执行文件。如果不是,它将使用默认值
这样,您也可以实现疯狂的配置。例如,假设您希望jdk7作为默认值,但希望始终使用java8
javadoc
。然后简单地将jdk7中的javadoc.exe
重命名为javadoc dontuse.exe
。这样,当您键入javadoc.exe
或某些应用程序调用它时,它将不会在(默认)jdk7中找到它,并继续在jdk8 bin中搜索。如果您在64位Windows上使用32位JRE,则需要修改HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java运行时环境“CurrentVersion”我想我发现了问题所在。大概Windows似乎无法处理指向另一个路径变量的一个路径变量。也就是说,它似乎不喜欢路径指向%JAVA\u HOME%
,而JAVA\u HOME
指向%JAVA7\u HOME%
。只要我将%JAVA7-HOME%
和%JAVA8\u HOME%
更改为一个物理目录,我就很高兴了。