首页 > 解决方案 > 迁移到 AdoptOpenJDK 11 后 Windows 7 中的像素化 Java GUI

问题描述

我正在将 java 应用程序从 java 8 (Oracle) 迁移到 java 11 (AdaptOpenJDK)。使用 java 8 的版本曾经在具有高 dpi 显示器的 Windows 10 上存在布局问题。一旦我使用 java 11 构建,问题就消失了,并且 GUI 在 Windows 10 中看起来很好。但是,我发现使用 java 11 的新构建在 Windows 7 上看起来不正常,GUI 图像和文本出现像素化。

概括:

我正在使用 3840x2160 的 4k 显示器,缩放比例为 125%。

我发现如果我使用 java 8 JRE(来自 AdoptOpenJDK)来运行应用程序,那么 Windows 7 中的问题就会消失。似乎问题是由 java 11 进行 125% 的缩放引起的,因为我发现 GUI 大约大了 25%。

使用 java 11 时,我想在 Windows 7 中找到解决方案。我想知道是否有任何我可以使用的 javaw 参数或我可以更改的任何系统设置。

任何帮助表示赞赏。

谢谢。

更新

附上java版本和windows上所有组合的截图。

解决方案

这实际上不是一个解决方案,但我想分享一些我认为经过一些研究后正在发生的事情。

这篇Microsoft 文章介绍了 DPI 感知模式以及每个 Windows 版本中的模式。8.1 之前的所有 Windows 版本的行为将始终应用位图拉伸,这会导致 UI 模糊。Java 8 中不会发生拉伸,因为它不支持 dpi,但它在高缩放百分比(混乱、大文本和小图像/图标)上存在更严重的问题。拉伸发生在 java 11 中,因为它支持 dpi,但是由于 Windows 7 中实现的拉伸行为,它存在模糊问题。

标签: windows-7java-11blurryhighdpi

解决方案


推荐阅读