Java 警告:[选项] 系统模块路径未与 -source 11 一起设置

Java warning: [options] system modules path not set in conjunction with -source 11

这台机器安装了 Java JDK 的多个版本和多个 IDE 的多个版本(Netbeans、IntelliJ、Eclipse 等)最近,我添加了JDK 15.0.2 和 Netbeans 12.2。尝试编译一个简单的“Hello World”时,输出结果如下:

ant -f C:\Data\NetBeans\grading\TestGrading -Dnb.internal.action.name=run.single -Djavac.includes=testgrading/HelloWorld.java -Drun.class=HelloWorld run-single

init:

Deleting: C:\Data\NetBeans\grading\TestGrading\build\built-jar.properties

deps-jar:

Updating property file: C:\Data\NetBeans\grading\TestGrading\build\built-jar.properties

Compiling 1 source file to C:\Data\NetBeans\grading\TestGrading\build\classes

**warning: [options] system modules path not set in conjunction with -source 11**

**1 warning**

compile-single:

run-single:

Hello World!

BUILD SUCCESSFUL (total time: 1 second)

如您所见,文件编译并运行,但警告令我担心。我无法在我的搜索中找到类似的警告......(所有警告都指的是“bootstrap class path not set”而不是“system modules path not set”

我更新了我的环境变量以反映最新的 JDK 条目: JAVA_HOME=C:\程序Files\Java\jdk-15.0.2

我在更新 JDK 和 IDE 时遗漏了哪些设置没有正确更新?还是我完全看错了地方?或者我是否需要完全卸载以前的版本,如果是这样,这对使用我仍想保留的那些以前的版本编写的以前的代码有何影响?

提前致谢!

有时会因为 java 更新而发生。当需要更新版本时,它会提示您删除旧版本。如果你不这样做,这个原因就会变得混乱。您可以更好地使用旧版本来解决此问题。也许这可以帮到你。

我偶然发现了这个问题和解决方法!虽然新安装更改了库属性中的 Java 平台以正确指向 JDK 15 作为新的(默认),但在源区域​​的底部,它留下了 Source/Binary格式仍然显示 JDK 11。手动将其更改为 JDK 15 使警告消失。警告消息应该说明“Source/Binary 格式”与库 Java 平台不匹配 - 检查相应的版本。“

我收到了完全相同的警告,在我的例子中,它以错误结束,并导致在运行 mvn 命令时构建失败。我使用的是 jdk 16,也安装了 11。 就我而言,除了从我的 mac 中完全卸载 java 并从 https://adoptopenjdk.net/.

中重新安装我需要的版本之外,没有任何修复它的方法