You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定Java2D的uiScale缩放系数?

如何获取系统自动选定的sun.java2d.uiScale值

运行时获取生效的缩放系数

有两种场景的获取方式:

  • 如果你要读取手动通过-D参数传入的固定值,直接调用JDK系统属性API即可:
    String uiScaleVal = System.getProperty("sun.java2d.uiScale");
    
  • 如果你要获取系统自动计算的最终生效缩放值,建议使用官方公开API读取,不受私有参数实现差异影响:
    import java.awt.Toolkit;
    // 计算方式:系统DPI / 基准DPI(96)
    double effectiveScale = Toolkit.getDefaultToolkit().getScreenResolution() / 96.0;
    

数值存储位置

  • 手动传入的sun.java2d.uiScale参数属于JVM进程级别的系统属性,仅存储在当前JVM进程的属性表中,进程结束后就会销毁,不会持久化写入本地文件。
  • 系统自动选定的缩放值不会存在JDK侧的存储位置,是JVM启动时主动从操作系统的显示配置中动态读取计算得到的,对应不同系统的读取来源:
    • Windows:读取系统设置→显示→缩放与布局的百分比值
    • macOS:读取系统设置→显示器→缩放配置项
    • Linux:读取当前桌面环境(GNOME/KDE/Xfce等)的全局缩放配置,或X11服务的DPI参数

注意:sun.java2d.uiScale是Oracle/OpenJDK的私有实现参数,部分第三方JDK发行版可能未实现该参数,建议优先使用java.awt.Toolkit的公开API获取缩放值,兼容性更强。


内容的提问来源于stack exchange,提问作者Gianluca Corazza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:30:05