Windows OS 如何决定使用哪个 JDK 编译器(oracle JDK /GraalVM jdk),当多个 JDK 出现在1个系统?

How does Windows OS decides which JDK compiler to use(oracle JDK /GraalVM jdk), When multiple JDK's are present on 1 system?

我在系统的默认位置安装了 Oracle JDK 17 Windows 10 OS。 我可以从命令行使用 javac 编译器。

我将在我的系统(zip 文件)中的不同位置安装 GraalVM JDK[java17]。

在线文档指示我将 GraalVM bin 目录(例如 C:\path\graalvm\bin)的路径添加到 Windows 上的 PATH 变量。

现在,当我输入 C:\javac mySourceFile.java 并按回车键时

OS 将如何决定哪个 java 编译器(oracle javac /GraalVM javac) 它会用来编译源代码吗,因为它们都被命名为 javac ?

这里我没有明确传递要使用的 javac 的位置。

有什么方法可以指定在命令行使用哪个 jdk 吗?

请注意编译仅使用命令行工具完成,未使用IDE。 (我知道 IDE 允许您使用 preferences/settings 根据位置 select JDK)

当您键入“javac MyClass.java”时,将从左到右搜索PATH 变量中定义的路径列表。当它找到匹配项时,它将使用该命令。因此,您可能在路径中包含多个 java\bin 文件夹。它将执行它找到的第一个。如果要执行特定版本的 Java,请将其添加为路径变量的第一个路径。