Java9 - jdk-9+181 intelliJ - 2017.2.2于2017年8月9日建成
java.management.rmi
的module-info.java
实现有点像:
module java.management.rmi {
...
requires transitive java.management;
exports com.sun.jmx.remote.protocol.rmi to java.management;
provides javax.management.remote.JMXConnectorProvider with
com.sun.jmx.remote.protocol.rmi.ClientProvider;
provides javax.management.remote.JMXConnectorServerProvider with
com.sun.jmx.remote.protocol.rmi.ServerProvider;
}
对于这两个provides
语句,我必须看到一个编译器警告
提供但未导出或使用的服务接口
最后,当我尝试在另一个模块中使用这些内容时,我猜错了:
module interactor {
requires java.management.rmi;
uses javax.management.remote.JMXConnectorProvider;
}
这一警告仍然存在。
此外,我还可以访问java.management
的模块来查找
uses javax.management.remote.JMXConnectorProvider;
uses javax.management.remote.JMXConnectorServerProvider;
这个警告的原因是什么?如何解决这个问题?
根据评论中的要求附上截图:
发布于 2017-09-07 18:43:50
对于任何未来的引用,由于IntelliJ更新中的一些回归,这可能是相关的,我自己回答。
这是IntelliJ的一个bug,在IDEA-178041上被跟踪,结果是:
从用于生成警告的模块图中省略一些JDK或库模块。
更新2017年9月7日
IntelliJ IDEA 2017.3 EAP构建已经解决了这个问题。
IntelliJ IDEA 2017.3 EAP (Community Edition)
Build #IC-173.2099.14, built on September 6, 2017
JRE: 1.8.0_152-release-915-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
https://stackoverflow.com/questions/45875078
复制相似问题