Java 11 + Oracle Forms-独立启动器 + 125%-Zoom = 模糊应用程序

Java 11 + Oracle Forms-Standalone Launcher + 125%-Zoom = blurry application

在我们使用 Oracle Forms + Reports-Application 从 Java 8 切换到 Java 11 之后,当缩放到 125% 或 150% 时,GUI 字体显得相当模糊。为了进行测试,我们切换回来并将 Java 11 替换为 Java 8 并且应用程序在缩放时显示正常。如何用 Java 11 修复它?

我们已经尝试了在网上找到的解决方案,但没有任何效果:使用 -Dsun.java2d.ddscale=true 启动 Java 11 无效。另一种可能的解决方案是调整我们应用程序的默认 DPI 感知模式,但我们不知道如何以及在何处放置清单文件。

有什么想法吗?

此问题很可能是 Java11 中不支持的字体造成的。因此,解决此问题的最佳方法是切换到受支持的字体。艰巨的任务是切换到看起来相似的字体。由于我不知道哪种字体是罪魁祸首,所以我无法告诉您 Java 11 支持使用哪种字体。您可以“Google”它。

要详细了解 Java 中的默认字体,请阅读这些文章

  1. https://docs.oracle.com/javase/tutorial/2d/text/fonts.html
  2. https://docs.oracle.com/en/java/javase/11/intl/font-configuration-files.html#GUID-48F5ADDD-FB48-461D-8F26-9805DFB783CD

如果问题无法通过常规方式解决,您可能需要联系 Oracle Forms 支持。例如,对于 Swing 应用程序,为了更改默认字体,您必须修改应用程序加载的 LookAndFeel

有许多 Java 个针对此问题和类似问题的错误。不幸的是,尚未确定确切原因主要是因为尚未向 Java 团队提供良好的 (Java) 测试用例。

也就是说,在较新的 Java 版本中进行了一些改进。此外,这些 Java 开关的各种组合声称可以提供一些帮助。哪一个适合您将取决于具体问题。

-Dsun.java2d.dpiaware=true

-Dsun.java2d.uiScale=true

-Dsun.java2d.autoScaleThreshold=1.5

-Dsun.java2d.uiScale=1.0

如果您决定联系 Oracle 支持,请参阅错误 31589993。但是,我建议先使用较新的 Java 版本进行测试。 Forms 12.2.1.4 支持的最新版本是 17.0.2

https://www.oracle.com/java/technologies/downloads/#jdk17-windows