繁体   English   中英

如何在Java 9中以编程方式获取所有模块的列表?

[英]How to get list of all modules programmatically in Java 9?

如何通过Java代码获取当前JVM实例中所有模块的列表? 可能吗? 如果是,那怎么样?

ModuleLayer.boot().modules().stream()
                .map(Module::getName)
                .forEach(System.out::println);

使用模块的jar或模块目录作为应用程序的输入,您可以使用ModuleFinder开始并进一步使用findAll来查找此查找程序可以找到的所有模块引用的集合。

Path dir1, dir2, dir3;
ModuleFinder finder = ModuleFinder.of(dir1, dir2, dir3);
Set<ModuleReference> moduleReferences = finder.findAll();

使用命令行选项可以轻松地将模块列为:

java -p <jarfile> --list-modules

这应该是足够的,如果你不想故意用ModuleLayerjava.lang.moduleConfiguration进行调整ModuleLayer 的回答所指出的那样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM