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

Java警告:[选项]系统模块路径未与-source 11一起设置,java,netbeans,path,compilation,warnings,Java,Netbeans,Path,Compilation,Warnings,这台机器安装了多版本的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 -Dr

这台机器安装了多版本的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)
如您所见,该文件已编译并运行,但该警告引起了我的关注。我在搜索中找不到类似的警告。。。所有警告都是指引导类路径未设置,而不是系统模块路径未设置

我已使用以下条目更新了我的环境变量以反映最新的JDK: JAVA_HOME=C:\Program Files\JAVA\jdk-15.0.2

当我更新JDK和IDE时,我缺少了哪些没有正确更新的设置?还是我完全找错地方了?或者我需要完全卸载以前的版本吗?如果需要,那么对使用我仍然希望保留的以前版本编写的以前的代码会有什么影响


提前谢谢

这有时是因为java更新而发生的。当需要更新的版本时,它会指示您删除旧版本。如果你不这么做,这会让人困惑。您可以更好地使用旧版本来解决此问题。也许这可以帮助您。

我偶然发现了这个问题和解决方案!虽然新安装更改了库属性中的Java平台,将JDK 15作为新的默认值正确指向,但在源代码区域的底部,源代码/二进制格式仍然显示JDK 11。将此手动更改为JDK 15使警告消失。警告消息应该说明源代码/二进制格式与库Java平台不匹配-检查相应版本。

考虑阅读模块功能。java的最新版本似乎在抛出警告,并建议您在代码中使用模块特性。Jens-感谢您的评论和对Java模块的介绍,但这并没有回答我关于这个特定警告消息的具体问题,以及我如何着手解决它。警告消息应该很容易破译-在没有资源来解析它们的情况下不神秘。警告与许多系统消息一样,确实是神秘的。假设您在用于构建的javac命令中的某个地方使用了-source11。请尝试添加--release 11并重新运行生成。这应该可以解决这个问题。我偶然发现了这个问题和解决方法!虽然新安装更改了库属性中的Java平台,将JDK 15作为新的默认值正确指向,但在源代码区域的底部,源代码/二进制格式仍然显示JDK 11。将此手动更改为JDK 15使警告消失。警告消息应该说明源代码/二进制格式与库Java平台不匹配-请检查相应的版本。@Weberrnc警告没有说明源代码格式,因为在Java中,使用jdk 15的更高版本并希望使用旧版本的兼容级别进行编译是完全有效的第11版。通常,更改编译版本可能是一项非常重要的工作,尤其是如果源代码使用的类或方法在以后的版本中已被弃用。在这种情况下,更改编译版本将涉及代码重写。Isilacar-不幸的是,较新版本的安装过程没有警告删除旧版本,也没有说会出现任何问题。Java文档难道不应该包含一种解决这些警告的方法吗?我花了一点时间来理解您的解决方案,它起了作用-谢谢!,所以,为了向其他人澄清:在Netbeans中,右键单击project并转到Properties。然后看看资料来源。如上所述,源代码/二进制格式将指定较旧版本的JDK,因此在我的示例中,使用下拉列表更新该值,即JDK 11->JDK 15。