Java 11使用jlink命令根据自己的程序定制精简版jre
曾经使用java 8进行开发时,做出来的程序如果要想给没安装java的人运行,就总是要把jre一起复制出来并和程序放一起。原本可能几十k的程序加上了jre就有上百M了,7z最大压缩后也有40几MB。
不过java 11解决了这个问题。java 11没有jre了,可以按需生成一个精简版的jre,只需把需要用到的模块放入jre即可。
配置完成jdk 11环境变量之后,就可以进行jre定制生成了。
我这里有一个app.jar文件,通过jdeps命令来查看这个jar包运行需要什么模块。
命令格式:
jdeps --list-deps jar文件.jar
我这里执行命令结果如下:
说明需要java.base和java.logging模块。
现在使用jlink命令定制jre,命令格式:
jlink --module-path "java模块位置" --add-modules 加入需要的模块,多个用英文逗号隔开 --output "指定生成的jre文件夹路径"
java模块位置一般在jdk安装目录\jmods下,命令行中我们可以使用”%JAVA_HOME%\jmods”来表示。
我这里执行命令如下:
这样就在当前目录下生成了jre11文件夹即为我们定制的jre,大小就精简多了。
调用生成的jre文件夹\bin\java.exe运行我们的程序即可。
还没有评论,来说两句吧...