There was no proper HiDPI support in Java 8.
In Java 9, JavaFx applications correctly scale to the monitor they are in. For example, if my monitor is set to scale at 150%, the Java application is scaled to 150%.
See: http://openjdk.java.net/jeps/263
However, for testing purposes, I need to be able to disable scaling by using java.exe flags, in Windows 10. How can I achieve this?
Also, maybe I can disable (and re-enable) this programmatically within the application itself?
Use
System.setProperty( "sun.java2d.uiScale", "1.0" );
in your java code, that worked for me (JDK 17).
if needed, found another couple of helpful JVM parameters from that website :
-Dsun.java2d.uiScale.enabled=false
-Dsun.java2d.win.uiScaleX=1.0 -Dsun.java2d.win.uiScaleY=1.0
I found this obscure option in a substance bug report. This fixes the issue for Swing applications.
-Dsun.java2d.uiScale=1.0
If you're using JavaFX you'll need
-Dprism.allowhidpi=false
Unfortunately I cannot find official documentation for either of these options
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With