图标和文本在 IntelliJ IDE 中看起来不错,但在 运行 JAR 文件中它们看起来 blurry/scaled

Icons and text look OK in IntelliJ IDE, but they look blurry/scaled up when running the JAR file

我是 运行ning Windows 10 64 位并且安装了 JDK 和 JRE 8 (1.8.0_152) 和 9(9.0.1)。

我有一个 GUI (Swing),我正在使用 IntelliJ IDEA 社区 2017.2。我已经根据自己的喜好设置了图标和字体大小,并在 IntelliJ 中设置了 运行s 程序并在 运行 时查看。我创建了一个 Artifact (JAR),如果它在 IntelliJ 中是 运行,一切都会正确显示。但是,如果我 运行(双击)IntelliJ 外部的 JAR 文件,所有图标和文本都会 bigger/scaled 并且看起来很模糊。我有 IntelliJ 运行 所有项目都是 1.8.

我已经阅读了 Java/Swing DPI 缩放(显然 Swing 报告说它可以进行缩放或类似的操作,然后 Windows 尝试放大程序)但我不完全理解那是什么以及正在发生什么。

我也考虑过使用 launch4j,因为如果 JAR 被包装,它可能不会受到 DPI 缩放的影响,这是正确的吗?

我可以如何处理 运行 我的 JAR 文件,使其看起来与在 IntelliJ 中看起来完全一样?

非常感谢!

P.S.: 这是IntelliJ里面运行时的程序

这是运行打开(双击)JAR 时的程序

我已经解决问题了!

我在这里 post 找到了这个:

How to set the DPI of Java Swing apps on Windows/Linux?

尽管如此,OP 有一个不同的问题(他的 Java Swing 应用程序上的字体太小并且应用程序不会自动放大)以下两个答案帮助我找到了解决方案:

第一个答案显示了对 Swing LAF(外观和感觉)的一些研究,只有 JavaFX 支持在此人的系统上将 DPI 缩放到 150%。

第二个答案告诉 运行 该应用程序使用 JRE 9!!! 并解释说它支持 DPI 缩放用于 Swing 和 AWT。

所以...我将 IntelliJ 设置为使用 JDK 9 并且...在 IntelliJ 中 运行ning 应用程序中出现丑陋的图标和放大的文本!!!

然后它击中了我!

我的系统中安装了 JRE 8 和 JRE 9(还有 JDK 1.8 和 JDK 9)...当然我的系统使用的是最新的!!! (我只是瞎看,其实我从来没想过这个)

基本上,我使用 JDK 1.8 在 IntelliJ 中进行开发,然后 运行 使用我系统上的默认 JRE(JRE 9,它具有用于 Swing 应用程序的 DPI 缩放功能)的 JAR 文件。

我 运行 我的 JAR 文件明确使用 JRE 1.8,如下所示:

c:\path-to-jar>"path-to-my-jre1.8.0_151-javaw.exe" -jar MyJAR.jar

而且...图标和文本显示正确!

希望这对某人有所帮助!