Java9 - jdk-9+181 intelliJ - 2017.2.2 built on August 9,2017
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
语句,我看到一个编译器警告声明
Service interface provided but not exported or used
当我尝试在另一个模块中使用它们时,我最终猜错了:
module interactor {
requires java.management.rmi;
uses javax.management.remote.JMXConnectorProvider;
}
警告仍然存在。
此外,我还可以到达java.management
要查找的模块
uses javax.management.remote.JMXConnectorProvider;
uses javax.management.remote.JMXConnectorServerProvider;
这个警告仍然存在的原因是什么,如何解决?
根据评论中的要求附上截图:
最佳答案
对于任何 future 的引用,由于 IntelliJ 更新中的一些回归,这可能会变得相关,我自己回答这个问题。
这是 IntelliJ 的一个错误,已在 IDEA-178041 进行跟踪。结果是:
omitting some JDK or library modules from a module graph used to generate warnings.
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
关于java - 提供服务接口(interface)但未导出或使用模块信息类中的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45875078/