【问题标题】:Intellij IDEA font smoothing in linuxlinux中的Intellij IDEA字体平滑
【发布时间】:2013-06-25 04:16:52
【问题描述】:

我在带有 KDE 的 Arch Linux 上使用 IntelliJ IDEA。 OpenJDK 版本为 1.7.0_40。

整个 IDE 字体(包括代码编辑器)在没有任何抗锯齿和字体平滑的情况下呈现。我将idea.properties文件idea.use.default.antialiasing.in.editor设置为true,并在_JAVA_OPTIONS变量-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true中添加,没有任何效果。

我还能尝试什么来启用字体平滑?

【问题讨论】:

    标签: intellij-idea openjdk font-smoothing


    【解决方案1】:

    Take a look here。我记得在运行 IDEA 时遇到了同样的问题,但是在添加了 wiki 中提到的行后,问题就消失了。

    export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting' setting 可能在哪里

    • offfalsedefault - 无抗锯齿
    • on – 完全抗锯齿
    • gasp – 使用字体的内置提示说明
    • lcdlcd_hrgb – 针对许多流行的 LCD 显示器进行了抗锯齿调整
    • lcd_hbgr – 替代液晶显示器设置
    • lcd_vrgb – 替代液晶显示器设置
    • lcd_vbgr – 替代 LCD 显示器设置

    【讨论】:

    • 好的,您是否只对 IDEA 有问题,或者它也出现在其他应用程序中?
    • 抱歉这么晚才回答...仅在intellijidea中,其他应用程序,包括使用pycharm等java的人正常工作
    • 这里有同样的问题。你找到解决办法了吗?
    • 将 useSystemAAFontSettings 设置为 LCS 而不是 on 对我来说看起来好多了。
    【解决方案2】:

    我找到了另一个解决方案here。 它适用于 Oracle JDK,但它可能对遇到这个问题的人有所帮助。您必须编辑.vmoptions 文件(在我的情况下,它是来自/binidea64.vmoptions)。添加这三行:

    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true
    

    如果遇到问题,可以删除最后一行。您可以为第一个设置测试不同的版本(从上面的帖子中获取选项)。

    此外,您可以编辑正在使用的字体并清除提示(帖子作者建议使用 FontForge)。我没有发现这是必要的。

    【讨论】:

    • 我遇到了相反的问题 - 抗锯齿产生的伪影导致文本无法阅读。将 awt.useSystemAAFontSetting 设置为“off”确实适用于 OpenJDK 11(运行与 IDEA 无关的程序)。将 swing.aatext 设置为 true 或 false 无效。
    【解决方案3】:

    不再需要这些丑陋的东西了。下载适用于 Linux 的最新 IntelliJ(2016.1 及更高版本)。它包括一个修改后的 JRE,字体问题已修复。 要修复 Android Studio,也要创建一个指向 IntelliJ jre 的符号链接:

    ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre
    

    或者,只需以 root 身份打开文件管理器(假设您的 IDE 安装在 /opt 目录或其他系统文件夹中)并创建 IntelliJ 的 jre 的快捷方式并将其移动到 Android Studio 安装文件夹,然后将其重命名为 'jre '。这适用于最新的 android studio 2.0,但它也应该适用于早期版本。

    Android Studio 现在带有修改后的 JRE,因此不再需要符号链接,只需下载最新版本即可。

    【讨论】:

    • v2016 对我来说似乎没有改善字体渲染。
    • @seriousdev 确保您使用的是未修改的 IntelliJ 安装。字体是他们所做的实际更改。它让我的一切都好多了
    • 确实,使用 JetBrains 提供的 JRE。要么直接从 JetBrains 站点下载 IntelliJ,要么使用pacman 安装 IntelliJ,然后将 JRE 从 JetBrains 添加到安装目录。
    【解决方案4】:

    如前所述,这是 JDK 中的一个错误。好消息是 OpenJDK 有一个 patch,它极大地改进了 Linux 上 IntelliJ 的字体渲染,并使字体质量达到了我在 Mac 上看到的水平。

    (要清楚,这比通过调整idea.properties 获得的要好得多。)

    要安装它,请使用以下软件包:

    Ubuntu PPA https://launchpad.net/~no1wantdthisname/+archive/openjdk-fontfix

    Arch AUR: https://aur.archlinux.org/packages/jre7-openjdk-headless-fontfix/
    (我运行的是 Ubuntu/Elementary OS,所以我不能亲自担保)

    【讨论】:

      【解决方案5】:

      它不适用于 OpenJDK,即使您选择了任何 _JAVA_OPTIONS,所以使用 sudo pacman -Rndd jdk7-openjdk jre7-openjdk jre7-openjdk-headless java-rhino 删除它并从 Aur 安装 Oracle JDK 8。安装后,您必须注销/登录以更新您的 java 环境变量(例如 JAVA_HOME)。瞧,字体渲染很好。

      享受吧!

      PS:pacman -Rndd 不带依赖项但使用配置文件删除,展开:pacman --remove --nosave --nodeps --nodeps

      【讨论】:

      • 绝对是更简单的选择。无需设置额外的环境变量,它开箱即用。此外,即使设置选项也没有为我解决问题。
      【解决方案6】:

      这适用于当前的 IntelliJ IDEA

      最好的解决方案是下载 IntelliJ IDEA 和包含的 JRE(默认下载)。 此版本在自定义 JRE(Java 运行时环境)上运行,该 JRE 经过修补以更好地处理 Linux 上的字体。

      IntelliJ IDEA 为 Linux 提供 2 个版本,一个版本具有嵌入式 JRE(默认下载),而另一个版本没有,取决于用户自己的 Java 安装。

      如果您不想重新安装 IntelliJ,请尝试以下操作:

      1. 下载解压this JRE
      2. Switch to it
      3. -Djava2d.font.loadFontConf=false 添加到位于intellij_installation_folder/bin/ 下的idea.vmoptionsidea64.vmoptions 文件中

      注意当我尝试它们时,第一个解决方案的结果看起来更好看。

      就我的测试而言,这里提到的@Corneliu Dascălu 解决方案不再适用在 IntelliJ 2018 及更高版本上。

      【讨论】:

        【解决方案7】:

        这是 OpenJDK 中的一个已知错误。我认为任何调整都不会为您解决这个问题,它可能会使它变得更好,但 OpenJDK 中的字体呈现被破坏了。

        恕我直言,最轻松的修复方法是转到 AUR 并安装 jdk7-compat,它旨在在您的普通 JDK 旁边运行。

        如果您从未使用过 AUR,请不要担心,它非常简单。基本上,你所做的是

        1. 确保您使用pacman -S base-devel 安装了base-devel
        2. 从我上面链接的 AUR 页面下载 tar,解压。
        3. 在解压到的文件夹中运行“makepkg -di”

        它完成了。现在,编辑 /usr/share/intellijidea-ce/bin/idea.sh 并更改执行程序的行(位于文件底部),使其看起来像这样

        eval "/opt/java7/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
        

        这将使 intelliJ 在 ORACLE JVM 中运行,而不是在 OpenJDK 中运行,从而将字体问题全部修复。

        【讨论】:

          【解决方案8】:

          /usr/share/intellijidea-ce/bin/idea.sh: 编辑这一行:

          ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS"
          

          让它变成这样:

          ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-10-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-29
            • 2013-02-17
            • 1970-01-01
            • 2013-10-24
            相关资源
            最近更新 更多