我正在尝试在Java7和Java 8环境之间进行更改。我创建了以下新的环境变量:
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 -version的结果,即使对于新的会话也是如此。
我们如何才能拥有两个独立的Java环境,同时可以轻松地在它们之间进我已经尝试将所有内容设置为正确的路径,包括:
HKEY_CURRENT_USER\Environment JAVA_HOME
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment CurrentVersion
甚至更改符号链接以指向我们想要的版本。我们已经创建了批处理脚本来完成所有工作,我们创建了powershell /,net来做它然后广播,尝试设置它并重新启动资源管理器..似乎无法在7和8之间切换。 / p>
有没有人知道如何解决这个问题?
答案 0 :(得分:0)
基本问题是,由于某些原因,通过命令行更改环境变量不是永久性的。您必须通过用户界面设置新值。
答案 1 :(得分:0)
我曾经做过以下事情:
java.exe
和javac.exe
。复制名称为java8.exe
和javac8.exe
。java7.exe
和javac7.exe
。 现在你可以调用java / javac,java7 / javac7和java8 / javac8。 (我不确定为什么有人会需要JAVA_HOME,我从来没有设置它。) 像jar.exe等其他可删除的东西将取自默认的jdk(路径中的第一个),这没关系,因为你的JAR文件无论是哪个jar.exe都是相同的。
然后继续配置你需要的应用程序,比如eclipse。
希望您的构建工具也可以被告知要使用哪些可执行文件。如果没有,它将使用默认值。
这样,您还可以实现疯狂的配置。例如,假设您希望jdk7为默认值,但希望始终使用java8 javadoc
。然后只需将javadoc.exe
从jdk7重命名为例如javadoc-dontuse.exe
。这样,当您键入javadoc.exe
或某些应用程序调用它时,它将无法在(默认)jdk7中找到它并继续在jdk8 bin中搜索。