jlink 是一个新的链接器工具,用于创建我们自己的定制jre。通常,我们可以使用oracle提供的默认jre来运行我们的程序。如果我们需要创建自己的jre,那么就可以使用这个工具。jlink工具可以帮助创建只包含 运行应用程序所需的类 的自己的jre。它可以减小开发的api的大小,并减少使用完整jre的依赖。
在java 9中,我们在编译代码和执行代码之间有一个新的阶段,即链接时间。链接时间是编译时间和运行时间之间的可选阶段。
创建自定义jre的命令
jlink --module-path --add-modules --limit-modules --output
- module-path 是链接器发现的可观察模块的路径。它可以是模块化的jar文件、jmod文件和模块。
- add-modules 指定要添加到运行时镜像的模块,这些模块可以通过传递依赖关系导致其他模块被添加。
- limit-modules 限制可观察模块的范围。
- the output 是包含生成的运行时镜像的目录。
jlink --module-path $java_home/jmods:mlib --add-modules com.greetings --output greetingsapp
在上述命令中,module-path的值是包含打包模块的目录的路径。 java_home/jmods是一个包含java.base.jmod、其他标准和jdk模块的目录。在模块路径上的mlib目录中包含了模块com.greetings的构件。