jdk11使用jlink定制精简jre
jdk11是模块化设计,不再包含jre,而是按需生成,需要哪个模块,就将哪个模块打包成jre,而不需要引入无关紧要的其他模块,可以大幅缩小jre体积。
打开jdk11包路径,
在bin目录下可以看到jlink.exe文件,我们将使用这个工具;再打开jmods文件夹,可以看到许多的以jmod为结尾的文件,其实jmod文件就是一个压缩包,可以使用加压缩文件打开,里面包含了class文件和其他文件。
其中java.base.jmod是最基本的模块,不依赖于其他任何模块,而其它模块都依赖于java.base模块。java.base包含了基本的java.lang.Object,java.lang.String等类。
具体的模块化设计可以看官方文档:
http://openjdk.java.net/jeps/200
查看项目中使用到了哪些模块,可以使用以下命令,xxx.jar就是你自己的项目打包后的jar包:
jdeps --list-deps xxx.jar
我们使用上一篇的文章创建的项目,来定制我们的jre,上一篇中没有使用其他模块,所以我们只要包含java.base模块即可。
使用 jdk11 + maven 开发 JavaFX