Failed to launch JVM
打包后,在部分机器上无法启动,抛出异常 java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge 及 ClassNotFoundException: com.sun.java.accessibility.AccessBridge,搜索后发现问题可能与用户目录下的 .accessibility.properties 文件有关。
在 module-info.java 加入 requires jdk.accessibility; 一行,或在 jlink 命令中添加 –add-modules “jdk.accessibility” 解决问题。
Received fatal alert: handshake_failure
调试时可以正常请求的部分网站在打包后出现 SSL 握手失败,添加 JVM 参数 -Djavax.net.debug=ssl:handshake:verbose 查看详细握手过程可以发现,握手中出现 java.security.NoSuchAlgorithmException: Algorithm x25519 not available 和 java.security.NoSuchAlgorithmException: Algorithm x448 not available 异常,可以看到缺少相应加密算法。
同样在 module-info.java 加入 requires jdk.crypto.ec; 一行,或在 jlink 命令中添加 –add-modules “jdk.crypto.ec” 解决问题。
以上依赖都不会在 jdeps 中显示出来,注意避坑!
参考资料
[1] https://stackoverflow.com/questions/15260989/exception-in-thread-main-java-awt-awterror-assistive-technology-not-found
[2] https://stackoverflow.com/questions/62238883/java-security-nosuchalgorithmexception-algorithm-x25519-not-available