gpt4 book ai didi

java - 我有一个旧版本的jar,现在我想用jlink生成一个更小的jre,怎么办?

转载 作者:行者123 更新时间:2023-11-30 07:46:47 27 4
gpt4 key购买 nike

我有一个使用 java8 和 maven 的 java 应用程序,现在我想使用 jdk9 生成一个较小的 jre 来打包我的应用程序,怎么办?如果不可能,你能给我一个maven使用jlink生成小jre的demo吗?我的英语不太好,抱歉,谢谢。

最佳答案

您可以 use JDeps to analyze your dependencies on modules :

jdeps -summary -recursive --class-path $libs $jar

$libs 替换为您的所有依赖项(甚至是可传递的依赖项;Maven can copy them),并将 $jar 替换为您的应用程序 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)所有平台服务,请输入 --bind-services

下面一行将列出您确定的所有模块以及它们的依赖项,可能还有它们绑定(bind)的服务:

minimal-jre/bin/java --list-modules

关于java - 我有一个旧版本的jar,现在我想用jlink生成一个更小的jre,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com