答案 0 :(得分:3)
你可以use JDeps to analyze your dependencies on modules:
jdeps -summary -recursive --class-path $libs $jar
将$libs
替换为您的应用程序JAR的所有依赖项(甚至是传递的; Maven can copy them)和$ jar。然后输出包含模块的依赖项列表(查找... -> java.*
和... -> jdk.*
)。
如果您使用的是Linux,则可以使用此管道获取模块名称的排序列表:
jdeps -summary -recursive --class-path 'jars/*' jars/app.jar
| grep '\-> java.\|\-> jdk.'
| sed 's/^.*-> //'
| sort -u
如果您使用的是Java 10或更高版本,则可以使用--print-module-deps
代替-summary
。
获取该列表并将其输入jlink
:
jlink
--module-path $jdk/jmods
--add-modules $modules
--output minimal-jre
如果您还想绑定所有平台服务,请输入--bind-services
。
然后,以下行将列出您确定的所有模块及其依赖项以及它们绑定的服务:
minimal-jre/bin/java --list-modules