Java9中如何通过Module获取jar文件名?

How to get jar file name by Module in Java 9?

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

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

不能保证模块是从模块化 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"));
}