繁体   English   中英

在Java8和Java7环境之间切换

[英]Changing between Java8 and Java7 Environments

我正在尝试在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之间切换。

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

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

我曾经做过以下事情:

  1. 将jdk8和jdk7都放入路径中(首先将您想要的那个作为“默认”)。
  2. 在jdk8 bin /目录中查找java.exejavac.exe 将可执行文件复制为java8.exejavac8.exe
  3. 在jdk7 bin /目录中执行相同的操作,然后将二进制文件复制到java7.exejavac7.exe

现在您可以调用java / javac,java7 / javac7和java8 / javac8。 (我不确定为什么有人会需要JAVA_HOME,但我从未设置过。)其他可执行文件(例如jar.exe等)将从默认的jdk(路径中的第一个)中获取,这没关系,因为您的JAR无论jar.exe是哪一个文件,它们都是相同的。

然后继续配置所需的应用程序,例如eclipse。

希望您的构建工具也可以被告知要使用哪些可执行文件。 如果没有,它将使用默认值。

这样,您还可以实现疯狂的配置。 例如,假设您想将jdk7设置为默认值,但希望始终使用java8 javadoc 然后只需将jdk7中的javadoc.exe重命名为例如javadoc-dontuse.exe 这样,当您键入javadoc.exe或某些应用程序调用它时,它将不会在(默认)jdk7中找到它,而是继续在jdk8 bin中搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM