Как отключить масштабирование пользовательского интерфейса в Windows, для приложений Java 9?

В Java 8 не было надлежащей поддержки HiDPI.

В Java 9 приложения JavaFx корректно масштабируются до монитора, в котором они находятся. Например, если мой монитор настроен на масштабирование 150%, приложение Java масштабируется до 150%.

Смотрите: http://openjdk.java.net/jeps/263

Однако в целях тестирования мне нужно иметь возможность отключить масштабирование с помощью флагов java.exe в Windows 10. Как этого добиться?

Кроме того, может быть, я могу отключить (и повторно включить) это программно в самом приложении?

3 ответа

Я нашел этот неясный вариант в отчете об ошибке вещества. Это исправляет проблему для приложений 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).

Другие вопросы по тегам