![如何在 Java 应用程序中获得正确的子像素渲染?](https://linux22.com/image/102892/%E5%A6%82%E4%BD%95%E5%9C%A8%20Java%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E8%8E%B7%E5%BE%97%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AD%90%E5%83%8F%E7%B4%A0%E6%B8%B2%E6%9F%93%EF%BC%9F.png)
我曾经使用 infinality 来获得好看的字体,但它已经很久没有更新了,而且现在 破碎的。从那以后我又恢复了普通的自由字体和普通的字体。我跟着指示让字体看起来合理,具体来说,/etc/fonts/local.conf
按照这里。我还将以下行附加到/etc/profile.d/jre.sh
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
我的一些 Java 应用程序很好,但有些(例如 Jabref)看起来很糟糕。如果完全关闭的话,看起来就像是子像素渲染。 (以前,由于具有无限性,它们看起来很棒。)
根据拱门维基,我尝试了几种不同的选项,例如设置-Dawt.useSystemAAFontSettings
为液晶屏、喘气和关闭。然而,这些都没有帮助。我还尝试使用不同版本的java(java-7-openjdk、java-8-jre/jre和java-8-openjdk),但这也没有帮助。
最后,我尝试安装 jre{7,8}-openjdk-infinality,但它们似乎需要“FreeType 中的 infinality 支持”,而这显然现在缺失了。我可以修复 Jabref 中这个糟糕的渲染问题吗?
(原来问这里,没有任何反应。)
答案1
您需要一个支持 freetype 的 openjdk 版本,例如 tuxjdk(不知道是否仍然支持)或 jetbrains 的 openjdk(在 AUR 中提供)。我认为可以使用无限性的 openjdk,但其依赖关系已被破坏,因为它与原始版本的唯一区别是 freetype 支持(我在这一点上可能是错的)。
答案2
结果发现这只是一个漏洞在 Jabref 启动器中,我选择的 java 没有被使用。