包 javax.jnlp 在模块 java.jnlp 中声明,该模块不在模块图中 [英] package javax.jnlp is declared in module java.jnlp, which is not in the module graph
问题描述
我有一个使用 Java webstart 技术的项目.我决定将Java版本从8升级到9.但是,我在编译时遇到了以下错误:
I have a project that uses Java webstart technology. I decided to upgrade the Java version from 8 to 9. However, I faced the following error on compiling:
error: package javax.jnlp is not visible
import javax.jnlp.DownloadServiceListener;
^
(package javax.jnlp is declared in module java.jnlp, which is not in the module graph)
我尝试将 C:\Program Files\Java\jdk-9\lib\javaws.jar
包含到类路径中,但仍然存在相同的问题.
I tried to include C:\Program Files\Java\jdk-9\lib\javaws.jar
to the classpath, but still the same issue remains.
推荐答案
看起来 java.jnlp 默认没有解析类路径上的代码(很像 Java EE 模块).解决方案是使用 --add-modules java.jnlp
显式添加它(javac
和 java
都接受该参数).
It looks like java.jnlp is not resolved by default for code on the class path (much like Java EE modules). The solution is to add it explicitly with --add-modules java.jnlp
(both javac
and java
accepts that parameter).
在JEP 261:模块系统中讨论了此选项或在 这篇博文.
这篇关于包 javax.jnlp 在模块 java.jnlp 中声明,该模块不在模块图中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!