Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java windows系统变量路径中多个JDK的路径_Java_Windows_Path Variables - Fatal编程技术网

Java windows系统变量路径中多个JDK的路径

Java windows系统变量路径中多个JDK的路径,java,windows,path-variables,Java,Windows,Path Variables,想象一下,在Windows7上的路径变量中,我已经包含了JDKVersion8的路径。现在,我开始了一个新的项目,我正在使用Java11,例如,我将Java11JDK的bin的路径也添加到path变量中。我想知道,在这种情况下,是否需要从path变量中删除旧JDK 8的路径才能正确工作?如果我把它放在那里,新项目会选择正确的Java版本吗?另外:在我的IDE中,当创建一个新项目时,我也会选择一个JDK来使用。这个选项用于什么?path变量中的JDK规范用于什么?我对操作系统不是很熟悉,请解释一下

想象一下,在Windows7上的路径变量中,我已经包含了JDKVersion8的路径。现在,我开始了一个新的项目,我正在使用Java11,例如,我将Java11JDK的bin的路径也添加到path变量中。我想知道,在这种情况下,是否需要从path变量中删除旧JDK 8的路径才能正确工作?如果我把它放在那里,新项目会选择正确的Java版本吗?另外:在我的IDE中,当创建一个新项目时,我也会选择一个JDK来使用。这个选项用于什么?path变量中的JDK规范用于什么?我对操作系统不是很熟悉,请解释一下:

1系统的path变量

path变量定义系统将在何处搜索您在console/shell上使用的可执行文件

在操作系统的path变量中有多个JDK是个坏主意。一个优先,你甚至不能或不应该确定它是哪一个

如果不同的项目需要不同的JDK,可以创建一个脚本来设置环境。让我们称之为Windows的configure.bat。打开shell时,您首先要运行该脚本来设置所有环境变量,并可能启动所需的服务

使用java-version或mvn-version之类的命令来检查shell正在使用的JDK

您也可以通过以不同的方式配置shell实例来创建环境设置,但遗憾的是,我无法向您提供有关这方面的任何详细信息

还有一种选择

2 IDE的path变量

在IDEEclipse、IntelliJ中,您还可以配置JDK,更重要的是:您可以为特定的代码级别配置不同的JDK,并且可以直接在每个项目上单独设置代码级别或JDK。在IDE中工作时,您不需要运行配置脚本,IDE将负责这一点。不过要小心,在IDE中使用系统控制台时,可能会退回到1

3马文

以与IDE中类似的方式,您可以配置:

JDKs.m2/settings.xml 代码级别为项目的pom.xml或父pom之一 当使用Maven时。有关更多详细信息,请参阅:


对于其他构建管理工具,如Gradle,这应该是可能的。不过,我必须让您参考web搜索来查找这些内容。

路径变量中的条目按照给定的顺序进行搜索-第一个找到的可执行文件将被启动Obs:如果使用可执行文件的完整路径,则不使用/不需要路径-非常适合仅为一个程序使用另一个java版本,而不更改默认值