使用jlink优化JVM模块以获取胖的Jar文件

时间:2018-10-05 04:52:35

标签: java java-9 jigsaw jlink

JDK9最酷的功能之一是jlink,它使JVM的优化版本很小,可以运行该应用程序,这非常有用,尤其是在像docker这样的容器中运行该应用程序时。 但是,仅传递您拥有的JAR文件并获得优化的运行时来运行它并不是很简单。

就像我使用Gradle并创建一个胖jar文件(单个jar文件中的所有依赖项)一样,我只是想使用此jar文件为其生成JVM?有解决办法吗?

1 个答案:

答案 0 :(得分:2)

Use JDeps to analyze your project's dependencies

jdeps --list-deps app.jar

然后从该列表中提取所有平台模块(以 java。 jdk。开头的平台模块),并将其输入jlink

jlink --add-modules $REQUIRED-PLATFORM-MODULES --output jdk-for-app

要验证:

jdk-for-app/bin/java --list-modules

这包括您确定的所有平台模块及其依赖性。