3

例如,我有somefile-0.1.jar包含 JPMS 模块的 jar 文件。此外,我参考Module somemodule了这个模块。

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

4

1 回答 1

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"));
}
于 2017-09-20T13:54:36.853 回答