java9 spring_java9导出运行springboot的精简版jre

实际情况可能略有不同,比如目标机器不同,jre是否兼容,未测试。

使用基本的eureka-server项目测试可运行。其他项目可能根据依赖的基础模块进行相应调整。

基本导出命令

以下是最基本的命令。

$J/bin/jlink -p $J/jmods --add-modules java.base --output jre

当然,只有java.base 是不行的。可以测试运行,会看到很多ClassNotFound,可以找一下这些类在哪个模块里,增加对应的模块。

查找某个类在哪个mod中

当遇到测试执行时提示找不到某个类时,如:java.beans.PropertyEditor,可执行如下命令进行查找。

ls $J/jmods/java.*.jmod |xargs -ti jmod list {} |grep java.beans.PropertyEditor

...

jmod list /opt/jdk-9.0.1/jmods/java.desktop.jmod

classes/java/beans/PropertyEditorManager.class

classes/java/beans/PropertyEditorSupport.class

classes/java/beans/PropertyEditor.class

jmod list /opt/jdk-9.0.1/jmods/java.instrument.jmod

...

就可以知道,该类在java.desktop.jmod 中。那么相应调整命令行:

$J/bin/jlink -p $J/jmods --add-modules java.base,java.desktop --output jre

以此类推。

最终结果

$J/bin/jlink -p $J/jmods --add-modules java.base,java.sql,java.naming,java.desktop,java.management,java.security.jgss,java.instrument,java.rmi,java.xml.bind --output jre

默认的jre的大小:

$ du -sh $J

557M/opt/jdk-9.0.1

$ du -sh /opt/jdk1.8.0_151/jre

205M/opt/jdk1.8.0_151/jre

精简的jre的大小:

$ du -sh jre

95Mjre

测试启动

./jre/bin/java -jar eureka-server-0.0.1-SNAPSHOT.jar

作者:polly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值