适用于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_PATH
和USED_DE
变量调整到您的环境。
我自己构建了Openjdk 8u40并应用了tuxjdk补丁。 此外,我不得不在/etc/fonts/
创建一个名为local.conf
的文件来覆盖java的字体图,其逻辑字体如Dialog
, Monospaced
等。之后,基于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用于存储设置,缓存,插件和日志的目录