为何jlink构建的自定义Java运行时镜像导致Swing应用显示模糊?
自定义JRE镜像运行Swing应用显示模糊问题
我们使用Azul的JDK FX 17,通过以下命令构建自定义Java运行时镜像:
jlink --no-header-files --no-man-pages --compress=2 --strip-debug --module-path "C:\Program Files\Zulu\zulu-17\jmods" --add-modules java.base,java.datatransfer,java.desktop,java.logging,java.naming,java.prefs,java.rmi,java.security.sasl,java.sql,java.xml,javafx.base,javafx.controls,javafx.graphics,javafx.media,javafx.swing,javafx.web,jdk.jsobject,jdk.unsupported,jdk.crypto.ec --output jre
但发现使用该自定义镜像运行Swing应用时,UI显示质量与系统安装的Java存在明显差异:前者显示模糊,后者则清晰锐利。
使用jlink生成的自定义Java运行时镜像
运行命令:
C:\Users\yccheok\Desktop\jstock>jre\bin\java -Dsun.java2d.dpiaware=false -Xms64m -Xmx512m --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED -jar jstock.jar
运行结果:Swing应用UI显示模糊
使用系统安装的Java
运行命令:
C:\Users\yccheok\Desktop\jstock>java -Dsun.java2d.dpiaware=false -Xms64m -Xmx512m --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED --add-opens java.desktop/java.awt=ALL-UNNAMED -jar jstock.jar
运行结果:Swing应用UI显示更清晰锐利
对比两种环境的运行效果,系统安装的Java运行的Swing UI清晰度更高。请问该问题的原因是什么?如何修复jlink生成的镜像?
内容的提问来源于stack exchange,提问作者Cheok Yan Cheng
相关产品推荐
相关产品推荐

