java - 如何在 Java 9 中通过模块获取 jar 文件名?

标签 java java-9 java-module

例如,我有一个包含 JPMS 模块的 somefile-0.1.jar jar 文件。此外,我有一个对该模块的引用 Module somemodule

如何通过模块获取jar文件名(使用somemodule引用)?我检查了 Module 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"));
}

关于java - 如何在 Java 9 中通过模块获取 jar 文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46319927/

相关文章:

java - 与 Smack 4.0.* 的 TLS 客户端连接的简单示例

java - 对 Java 9 的 Hibernate 支持

java - 既然 tools.jar 在 Java 9 中被分解了,sun.misc.Perf 去了哪里

Java 9 : Module java. xml.bind 在 Eclipse 中无法访问

java - 如果应用程序有多个模块并且每个模块都是单独的项目,那么在 jboss 和 eclipse 中调试 java 应用程序的最佳方法是什么

java - 在Java中组合注解

java - 如何读取 linkedtreemap [GSON] 类型的 json 数据?

java - Android Studio 无法启动,无法创建 JVM

java - Java 9:什么是集合工厂方法?

java - 模块化项目使用 jOpenDocument 引发 InvalidModuleDescriptorException