Java禁用dpi感知不工作

Java禁用dpi感知不工作,java,java-8,jvm-arguments,dpi-aware,Java,Java 8,Jvm Arguments,Dpi Aware,我试图用-Dsun.java2d.dpiaware=false参数运行一个Java应用程序,但什么也没发生 我希望有一个模糊的用户界面,但与正常大小的图标和字体,似乎这个标志不起作用 我在Windows8.1上使用JDK1.8.045 我发现了这个错误,但不知道如何解决它。要修复Windows,请执行以下步骤: 创建windows注册表编辑新DWORD 按Windows按钮+R,键入“regedit”,然后单击“确定” 导航到以下注册表子项: HKEY_本地机器>软件>Microsoft>Wi

我试图用
-Dsun.java2d.dpiaware=false
参数运行一个Java应用程序,但什么也没发生

我希望有一个模糊的用户界面,但与正常大小的图标和字体,似乎这个标志不起作用

我在Windows8.1上使用JDK1.8.045

我发现了这个错误,但不知道如何解决它。

要修复Windows,请执行以下步骤:
  • 创建windows注册表编辑新DWORD

  • 按Windows按钮+R,键入“regedit”,然后单击“确定”
  • 导航到以下注册表子项:
    HKEY_本地机器>软件>Microsoft>Windows>当前版本>侧边
  • 右键单击,选择新建>DWORD(32位)值
  • 键入PreferExternalManifest,然后按ENTER键
  • 右键单击PreferExternalManifest,然后单击修改
  • 输入值数据1并选择Decimal
  • 单击“确定”
  • 创建两个.manifest文件(JDK

  • 转到JavaJDK安装文件夹并打开bin目录
  • 创建名为java.exe.manifest的第一个文件(在本文末尾添加代码)
  • 创建第二个名为javaw.exe.manifest(在本文末尾添加代码)
  • 创建两个.manifest文件(JRE

  • 转到java JRE安装文件夹并打开bin目录
  • 创建名为java.exe.manifest的第一个文件(在本文末尾添加代码)
  • 创建第二个名为javaw.exe.manifest(在本文末尾添加代码)
  • 重新启动java应用程序

要粘贴到.manifest文件中的代码

假的
此修复程序可用于任何程序,而不仅仅是Java

如果需要修复JNLP应用程序启动器的DPI,则必须将以下密钥添加到.JNLP文件中的参考资料部分:

升级Windows(例如从win10升级到win10 1607)后,如果此修复程序不再有效,则应再次应用此修复程序。


**更新Java后,您应该将.manifest文件复制并粘贴到新Java的目录中。尝试使用
-Dsun.java2d.uiScale=1运行vm,它修复了我的swing/vtk应用程序

,您只需使用:

System.setProperty("prism.allowhidpi", "false");

重要的是,在初始化主参数之前的应用程序的最开始,即application.launch()之前或main()函数的开始,因为dpi感知似乎是由启动器的属性触发的,使用不同的程序来启动JVM可能会有所帮助。Windows 10具有java可执行文件的兼容性设置,它工作得非常好。请参阅此链接中的响应
https://superuser.com/questions/988379/how-do-i-run-java-apps-upscaled-on-a-high-dpi-display
希望我能不止一次投票给你。为我工作!我不会降低它的等级,但它对我不起作用,问题是目前只有3个人尝试过这种修复方法。我在64上使用Windows10,尝试从eclips运行java程序,但仍然是一个威胁windows@FlyingTurtle我可以告诉您,这个修复程序在eclipse中也可以正常工作。确保将.manifest文件复制到您正在使用的jdk和jre中。也许您已经安装了更多的java版本,而您正在处理的eclipse项目使用的是一个尚未创建.manifest文件的版本。对于所有努力使此修复程序正常工作的人:在我的例子中,java小程序使用的java和javaw可执行文件不是默认java安装文件夹中的文件(JDK或JRE)。因此,确定是否已将.manifest文件放入正确文件夹的简单方法是:1)启动java小程序2)打开任务管理器3)查找“java(TM)Platform SE binary”(或类似内容)4)右键单击并选择“Open location…”5)将java.exe.manifest和javaw.exe.manifest复制到您刚刚打开的文件夹中。在WIndows 10(以及netbeans)上,JabRef存在此问题,这似乎直接创建了java虚拟机。我制作了一个JabRef.exe.manifest,如回答中所述,瞧,修复了。谢谢这修复了我在从JDK 8升级到JDK 11后在1920x1080显示器上放大windows和字体时遇到的一个问题,因此我对此表示感谢,尽管这可能与最初的问题无关,特别是关于JDK 8的问题。你是对的,但我在修复同一个问题时遇到了问题,我在家里补充了这一点,有人可以从中受益。这应该是公认的答案。工作起来很有魅力。我从来没有在我的4K显示器上看到过如此臃肿的应用程序,可扩展性为150%。
System.setProperty("prism.allowhidpi", "false");