如何在Java 9中通过Module获取jar文件名?

时间:2017-09-20 10:42:38

标签: java java-9 java-module

例如,我有somefile-0.1.jar jar文件,其中包含JPMS模块。此外,我对此模块有一个参考Module somemodule

如何通过Module获取jar文件名(使用somemodule引用)?我已经检查过模块API,但没有找到办法。

1 个答案:

答案 0 :(得分:6)

无法保证模块是从模块化JAR加载的。在任何情况下,我认为这接近你所寻找的:

Module m = ...
ModuleLayer layer = m.getLayer();
if (layer != null) {
    ModuleReference mref = layer.configuration()
            .findModule(m.getName())
            .map(ResolvedModule::reference)
            .orElseThrow(() -> new RuntimeException("should not happen"));
}