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"));
}
例如我有 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"));
}