Java 8中没有适当的HiDPI 支持。
在Java 9中,JavaFx 应用程序可以正确缩放到它们所在的监视器。例如,如果我的监视器设置为 150%,则 Java 应用程序将缩放到 150%。
见: http: //openjdk.java.net/jeps/263
但是,出于测试目的,我需要能够在 Windows 10 中使用java.exe flags禁用缩放。我该如何实现这一点?
另外,也许我可以在应用程序本身中以编程方式禁用(并重新启用)它?
Java 8中没有适当的HiDPI 支持。
在Java 9中,JavaFx 应用程序可以正确缩放到它们所在的监视器。例如,如果我的监视器设置为 150%,则 Java 应用程序将缩放到 150%。
见: http: //openjdk.java.net/jeps/263
但是,出于测试目的,我需要能够在 Windows 10 中使用java.exe flags禁用缩放。我该如何实现这一点?
另外,也许我可以在应用程序本身中以编程方式禁用(并重新启用)它?
我在物质错误报告中发现了这个晦涩的选项。这解决了 Swing 应用程序的问题。
-Dsun.java2d.uiScale=1.0
如果您使用的是 JavaFX,则需要
-Dprism.allowhidpi=false
不幸的是,我找不到这些选项中的任何一个的官方文档
如果需要,从该网站找到另外几个有用的 JVM 参数:
-Dsun.java2d.uiScale.enabled=false
-Dsun.java2d.win.uiScaleX=1.0 -Dsun.java2d.win.uiScaleY=1.0
利用
System.setProperty( "sun.java2d.uiScale", "1.0" );
在你的java代码中,这对我有用(JDK 17)。