在Java8和Java7环境之间进行更改

时间:2015-03-17 17:15:05

标签: java windows environment-variables

我正在尝试在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>

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

基本问题是,由于某些原因,通过命令行更改环境变量不是永久性的。您必须通过用户界面设置新值。

答案 1 :(得分:0)

我曾经做过以下事情:

  1. 将jdk8和jdk7放在你的路径中(把你想要的那个放在"默认"首先)。
  2. 在jdk8 bin /目录中查找java.exejavac.exe。复制名称为java8.exejavac8.exe
  3. 的可执行文件
  4. 在jdk7 bin /目录中执行相同操作,并将二进制文件复制到java7.exejavac7.exe
  5. 现在你可以调用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中搜索。