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

Paths to multiple JDK's in windows system variable PATH

想象一下,在 Windows 7 上的路径变量中,我已经包含了 jdk 版本 8 的路径。现在我开始一个新项目,我在其中使用 Java 11,例如,我将 java 11 JDK 的 bin 的路径也添加到 Path 变量。我想知道,在这种情况下,是否需要从 Path 变量中删除到(旧)JDK 8 的路径才能正常工作?如果我把它留在那里,是否会为新项目选择正确的 Java 版本?还有:在我的IDE新建项目的时候,我也做select一个JDK来使用。这个选择是做什么用的,路径变量中JDK的规范是做什么用的?我对操作系统不是很熟悉,所以请解释一下:)

1)系统的路径变量

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

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

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

使用 java -versionmvn version 等命令检查 JDK 您 shell 正在使用!

您也可以通过以不同方式配置 shell 的实例来创建环境设置,但很遗憾,我无法向您提供任何相关细节。

还有一个选择...

2) IDE的路径变量

在你IDE(Eclipse、IntelliJ)中你还可以配置JDK,更重要的是:你可以为特定的代码级别配置不同的JDK并且可以设置每个项目的代码级别(或直接 JDK)。在 IDE 中工作时,您不需要 运行 配置脚本,IDE 会处理这些。不过要小心,在 IDE 中使用系统控制台时,您可能会退回到 1) 然后。

3) Maven

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

  • JDKs (.m2/settings.xml)
  • 代码级别(项目的 pom.xml 或其中一个父 POM)

使用 Maven 时。有关详细信息,请参阅: http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

这应该适用于其他构建管理工具,例如 Gradle。不过,我必须让你去网上搜索一下。