制作运行springboot最小jre问题?
jlink \
--add-modules java.base,java.desktop,java.naming,\
java.management,java.rmi,java.sql,java.xml,java.instrument,\
java.security.jgss,java.instrument \
--compress=2 \
--strip-debug --no-header-files --no-man-pages \
--output "F:/myjre/springjre"
输出的jre,可以启动运行spring-boot项目。测试登陆(https),报出运行时错误;
测试过完整的jre运行jar没有问题;
Cannot use direct ByteBuffer cleaner, memory leaking may occur
java.lang.ClassNotFoundException: sun.misc.Unsafe
at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[na:na]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
。。。。。
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[na:na]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Unknown Source) ~[na:na]
at org.apache.tomcat.util.buf.ByteBufferUtils.<clinit>(ByteBufferUtils.java:47) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at org.apache.tomcat.util.net.SocketBufferHandler.expand(SocketBufferHandler.java:211) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at org.apache.tomcat.util.net.SecureNioChannel.processSNI(SecureNioChannel.java:334) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:175) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1568) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
sun.misc.Unsafe 包已经在9移除,替代的模块包名是什么?
既然已经删除,为什么用完整的jre运行没有问题?