使用install4j启动的Swing应用在Windows10中显示模糊问题咨询
解决install4j启动Swing应用在Win10下界面模糊的问题
嘿,我之前也碰到过一模一样的情况,给你几个针对install4j 6版本的实用解决方案,都是围绕高DPI兼容性来的:
给启动器添加JVM参数(最直接的办法)
既然用javaw启动正常,说明对应的JVM参数起作用了,咱们把这些参数加到install4j的启动配置里就行:- 打开你的install4j项目,找到左侧的「启动器」节点,选中你生成的Windows启动器
- 切换到「JVM选项」标签页,添加以下两个参数:
-Dsun.java2d.dpiaware=false-Dsun.java2d.uiScale=auto
原理是禁用Java自身的DPI感知,交给Windows系统处理缩放,同时让UI自动适配系统的缩放比例,这样Swing界面就不会模糊了。
配置启动器的高DPI兼容性(手动/打包自动设置)
如果JVM参数没起效果,咱们可以直接给exe启动器设置Windows的兼容性选项:- 手动设置:找到生成的.exe文件,右键→「属性」→「兼容性」→勾选「替代高DPI缩放行为」,下拉选择「应用程序」
- 打包时自动配置:在install4j的「安装步骤」里添加一个「运行脚本」动作,用Windows的注册表命令自动设置兼容性,脚本内容如下(记得把
[launcherName]换成你的启动器文件名):reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "[installer:sysdir]/[launcherName].exe" /d "~ HIGHDPIAWARE" /f
这样用户安装完应用后,启动器的兼容性就自动配置好了,不用手动操作。
用install4j直接调用javaw启动(和bat效果一致)
如果上面的方法都不行,咱们可以让install4j的启动器完全模拟bat的启动方式:
在install4j里把启动器类型设置为「调用另一个VM」,然后指定javaw.exe的路径,把你bat文件里的所有参数(比如主类、classpath等)都填进去,这样启动效果就和你用bat启动的完全一样,自然不会有模糊问题。
内容的提问来源于stack exchange,提问作者Walter D
相关产品推荐
相关产品推荐

