适用于Ubuntu的OpenJDK-8 / Oracle JDK 8字体补丁

是否有针对Ubuntu 14.10的OpenJDK-8或Oracle JDK 8的修补版本修复了Java应用程序中的丑陋字体(Jetbrains产品,Netbeans等)?

我之前在本文中为Ubuntu 14.04安装了一个修补版本的OpenJDK7,但它似乎不适用于14.10。 我也找不到OpenJDK8 / OracleJDK8的补丁版本。

如果有任何修补版本或我可以安装的OpenJDK8 / OracleJDK8补丁,我真的很感激,如果有人能指出的话。

谢谢。

在阅读了各种教程并弄乱了一堆修复后,我发现了一种完美的方法。

首先从Oracle下载JDK 8并在终端中执行以下行:

cd Downloads tar -xvf jdk-8u25-linux-x64.tar.gz rm jdk-8u25-linux-x64.tar.gz sudo mkdir -p /usr/lib/jvm/ sudo mv jdk1.8.0_25 /usr/lib/jvm/ 

现在通过执行以下命令下载JDK字体修复程序(由Urshulyak Yaroslav提供 ):

 cd ~/Downloads wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz tar -xvf jdk-8u5-tuxjdk-b08.tar.gz sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm rm jdk-8u5-tuxjdk-b08.tar.gz 

这将提取下载的zip并将其移动到/ usr / lib / jvm /。 现在在终端中运行以下命令:

 cd ~ sudo gedit .bashrc 

然后将以下行添加到bashrc文件的最底部。

 JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/ export JAVA_HOME 

保存它然后gedit idea.sh. (您的脚本位置可能不同)

 gedit /home/USER/Downloads/idea/bin/idea.sh 

在脚本的最底部用以下两行替换底部的While Do语句中的行:

 eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@" test $? -ne 88 && break 

保存它然后打开IntelliJ,字体应该工作,你将使用Oracle JDK 8进行开发。 您可能需要编辑项目设置并再次设置JDK,但一定要使用实际的JDK而不是字体修复。

此修复程序也适用于CLion , Android Studio和PyCharm 。

这些说明假定JDK版本为1.8.0_25,文件/路径名称将在未来版本中更改。

让DanielSteward完整地完成:

不幸的是,GTK外观的tuxjdk使用当前使用的gtkrc中的字体集。 但是大多数主题都没有设置任何字体。 因此,netbeans将使用粗体Arial 15作为UI字体。

要解决这个问题,只为具有固定字体的netbeans创建gtkrc并告诉netbeans使用此文件。

我准备了半自动执行此function的特殊启动器:


 #!/斌/庆典

 ###可自定义的变量:###

 #netbeans安装的路径
 NETBEANS_PATH = $ {NETBEANS_PATH: - 〜/选择/的NetBeans-DEV-选择月份} /斌/的NetBeans
 #桌面环境名称使用样式
 USED​​_DE = $ {USED_DE:-mate}
 #Tuxjdk似乎渲染了太大的UI字体,因此请使用此值来减少它们
 FONT_SUBTRAHENT = $ {FONT_SUBTRAHENT:-3}

 ###############################

 function remQuotes(){
   echo“$ {@ // \'/}”
 }

 function reduceFontSize(){
   local subtrahend = $ 1; 转移
   local args =“$ @”
   echo $ {args // [0-9] /} $(($ {args // [!0-9] /}  -  $ subtrahend))
 }

 theme = $(remQuotes`gsettings get org。$ {USED_DE} .interface gtk-theme`)
 font = $(remQuotes`gsettings get org。$ {USED_DE} .interface font-name`)
 font = $(decreaseFontSize $ FONT_SUBTRAHENT $ font)

 themeDirs = $(找〜/ .themes / / usr / share / themes / -type d -name“$ {theme}”)
 gtkRcPath = “”
对于“$ themeDirs”中的dir; 做
   if [[-f“$ dir / gtk-2.0 / gtkrc”]]; 然后
     gtkRcPath = “$ DIR / GTK的2.0 /的gtkrc”
    打破;
  科幻
 DONE

 if [[“$ gtkRcPath”==“”]]; 然后
   echo“找不到主题”> / dev / stderr
   ./$NETBEANS_PATH $ @
科幻

 cat $ HOME / .netbeans / .gtkrc-2.0
包括“$ gtkRcPath”

 style“user-font”{
     font_name =“$ font”
 }

 widget_class“*”style“user-font”

 GTK的字体名=“$字体”

 EOF

 GTK2_RC_FILES =〜/ .netbeans / .gtkrc-2.0 $ NETBEANS_PATH $ @

这将读取您的主题设置并为netbeans创建假主题。 您必须将NETBEANS_PATHUSED_DE变量调整到您的环境。

我自己构建了Openjdk 8u40并应用了tuxjdk补丁。 此外,我不得不在/etc/fonts/创建一个名为local.conf的文件来覆盖java的字体图,其逻辑字体如DialogMonospaced等。之后,基于Swing的应用程序得到了很大改进。 看看这里 。

目前只有tuxjdk的rpm包: http : //download.opensuse.org/repositories/home :/ TheIndifferent:/ tuxjdk /

我需要更多时间来学习debian包装并准备合适的包,并记录tuxjdk版本03的一些有趣function。 敬请关注,请将您遇到的任何问题报告给https://github.com/TheIndifferent/tuxjdk ,这样我就可以重现并(希望)修复它们。

实际上你不需要打扰修改idea.sh ,它在更新时是不稳定的。 有一个特定于用户的配置文件~/.IntelliJIdea2016.1/config/idea.jdk (namings相应地改变),它存储引导JDK。

官方参考:

  • 选择IDE将在其下运行的JDK版本
  • IDE用于存储设置,缓存,插件和日志的目录