如何在Windows上禁用UI缩放以适用于Java 9应用程序?

11

Java 8中没有适当的HiDPI支持

Java 9中,JavaFx应用程序可以正确缩放到它们所在的显示器。例如,如果我的显示器设置为150%比例,则Java应用程序会缩放到150%。

参见:http://openjdk.java.net/jeps/263

但是,出于测试目的,我需要能够使用java.exe标志在Windows 10中禁用缩放。我该如何实现呢?

此外,在应用程序内部,也许我可以编程方式地禁用(和重新启用)它吗?


你在Windows上没有找到与这个回答中提到的类似配置吗? - Naman
@nullpointer 当然可以,但我需要通过java.exe标志来完成,而不是通过Windows上的配置。 - MarcG
2
可能是 Java 9 中的 JFrame 缩放 的重复问题。 - Adam
3个回答

13

我在一个关于Substance bug报告的帖子中发现了这个不常见的选项。 这个选项可以解决Swing应用程序中的问题。

-Dsun.java2d.uiScale=1.0

如果您正在使用JavaFX,则需要:

-Dprism.allowhidpi=false

遗憾的是,我找不到任何官方文档来介绍这两个选项。


3
"System.setProperty("sun.java2d.uiScale", "1.0");" 这段代码对我在使用JDK 11和Swing时有效,谢谢! - mihca

4

如果需要的话,可以从那个网站找到另外几个有用的JVM参数:

-Dsun.java2d.uiScale.enabled=false
-Dsun.java2d.win.uiScaleX=1.0 -Dsun.java2d.win.uiScaleY=1.0

2

使用

System.setProperty( "sun.java2d.uiScale", "1.0" );

在您的Java代码中,这对我有用(JDK 17)。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
由于某些原因,在Windows 7和JRE 9.0.4上对我无效。 - Alex Popov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接