带有JDK8和JDK9的JAVA_主页

带有JDK8和JDK9的JAVA_主页,java,java-8,java-9,system-variable,Java,Java 8,Java 9,System Variable,出于某些原因,我需要使用JDK8和JDK9。将两条路径(到JDK8和JDK9)放入同一个JAVA_HOME系统环境变量中是一个好主意吗 详细信息:我需要同时运行两个系统,一个使用ant(使用jdk8),另一个使用maven(使用jdk9)。通常,该路径是为命令行界面中当前活动的java命令关键字保留的。在使用终端时,任何时候都不能同时激活多个JDK。所以这不是一个好主意 但是,您可以将JAVA_HOME指向有多个JDK安装的文件夹,然后将PATH变量设置为某个JDK。因此,当您想要更改JDK时,

出于某些原因,我需要使用JDK8和JDK9。将两条路径(到JDK8和JDK9)放入同一个JAVA_HOME系统环境变量中是一个好主意吗


详细信息:我需要同时运行两个系统,一个使用ant(使用jdk8),另一个使用maven(使用jdk9)。

通常,该路径是为命令行界面中当前活动的java命令关键字保留的。在使用终端时,任何时候都不能同时激活多个JDK。所以这不是一个好主意

但是,您可以将JAVA_HOME指向有多个JDK安装的文件夹,然后将PATH变量设置为某个JDK。因此,当您想要更改JDK时,只需更改PATH变量,并保持JAVA_原样


如果您打算在IDE中的多个项目中使用不同的JDK,那么可以有多个JDK,并且可以在项目设置中选择要使用的JDK。

如果我是您,那么我将创建函数()在
.profile
.bashrc
中,命令提示符或终端将
JAVA\u HOME
变量导出到
Java8
Java9
,具体取决于我分别运行的是
ant
还是
mvn

假设您的Java8和Java9安装在以下位置

  • C:\ProgramFiles\Java\jdk1.8.0\U 151\bin
  • C:\ProgramFiles\Java\jdk1.9.0\u 4\bin
那么
.profile
.bashrc
中的函数应该是这样的

对于
ant
和Java8(这里我将命令行参数
$1
传递给
ant
命令)

对于
mvn
和Java9

runmvn() {
  export JAVA_HOME="C:\Program Files\Java\jdk1.9.0_4\bin";
  mvn clean install;
}

使用上述功能,您可以在命令提示符下运行
ant
mvn
,并且
JAVA\u HOME
将仅针对该特定运行进行适当设置。

解释您正在尝试做什么,为什么您认为两者都需要?显然,您不能同时使用两者,你想在它们之间切换吗?是的-关于切换,但不费吹灰之力。我需要同时运行这两个系统,一个是使用ant(使用jdk8),另一个是使用maven(使用jdk9)。在这种情况下,我建议将
JAVA_HOME
设置为JAVA 8,并且可能的第三个选项是:只使用JDK 9,让一个构建生成与JAVA 8兼容的类。你可以说“出于某些原因”,但如果你不解释这些原因是什么,就很难真正知道真正的限制是什么。
runmvn() {
  export JAVA_HOME="C:\Program Files\Java\jdk1.9.0_4\bin";
  mvn clean install;
}