例如,我有somefile-0.1.jar
jar文件,其中包含JPMS模块。此外,我对此模块有一个参考Module somemodule
。
如何通过Module获取jar文件名(使用somemodule
引用)?我已经检查过模块API,但没有找到办法。
答案 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"));
}