图标和文本在 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
而且...图标和文本显示正确!
希望这对某人有所帮助!
我是 运行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
而且...图标和文本显示正确!
希望这对某人有所帮助!