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


8

是否有适用于Ubuntu 14.10的OpenJDK-8或Oracle JDK 8的补丁程序版本,可修复Java应用程序(Jetbrains产品,Netbeans等)中的难看字体?

我以前安装OpenJDK7的对Ubuntu 14.04的补丁版本文章,但它似乎没有可供14.10。我也找不到OpenJDK8 / OracleJDK8的修补版本。

如果我可以安装任何补丁版本或OpenJDK8 / OracleJDK8补丁,那么如果有人可以指出,我将不胜感激。

谢谢。


现代版本的IntelliJ带有自己的JVM。最有可能处理这样的事情。
托尔比约恩Ravn的安徒生

Answers:


9

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

首先,从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

保存它,然后编辑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,而不要使用字体修复程序。

此修复程序还适用于CLionAndroid StudioPyCharm

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


感谢您的详细回答。我尝试了您的解决方案,但是我的字体变得更大和更大了。我可以减小字体大小,但不能将粗体更改为普通字体。
Deepal 2014年

是的,大小增加到14(我将我的大小更改为11),但是我的字体不是粗体吗?我假设您尝试了其他字体,以查看它们是否仍为粗体?

是的,不是所有字体都是粗体的,我当前使用的字体是粗体的。我想我可能不得不接受这一点。除了修改其可执行文件之外,该解决方案是否可以以其他任何方式应用于所有Java应用程序?我的意思是也要jar文件?我不能使用这个打补丁的jdk作为我的默认jdk吗?它不是完整的jdk吗?
Deepal

1
抱歉,粗体字体我帮不上忙。您可能会尝试下载该字体的另一个副本,如果让您感到困扰的话,值得一试。您可以尝试解决字体修复问题,将它作为JDK时会遇到一些问题,可以尝试下载完整的openJDK并将两者合并,这可能会起作用。

3
@Deepal确保您也在export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.xrender=true"bashrc 中设置
Salem

1

要完成DanielSteward的答案:

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

要修复该问题,仅针对具有固定字体的netbeans创建gtkrc,并告诉netbeans使用此文件。

我准备了可以自动执行此操作的特殊启动器:

#!/ bin / bash

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

#安装netbeans的路径
NETBEANS_PATH = $ {NETBEANS_PATH:-〜/ opt / netbeans-dev-2015-06-04} / bin / netbeans
#桌面环境名称以使用样式
USED​​_DE = $ {USED_DE:-mate}
#Tuxjdk似乎渲染了太大的UI字体,因此请使用此值减少它们
FONT_SUBTRAHENT = $ {FONT_SUBTRAHENT:-3}

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

函数remQuotes(){
  回显“ $ {@ // \'/}”
}

函数reduceFontSize(){
  local subtrahend = $ 1; 转移
  本地args =“ $ @”
  回声$ {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”中的目录;做
  如果[[-f“ $ dir / gtk-2.0 / gtkrc”]]; 然后
    gtkRcPath =“ $ dir / gtk-2.0 / gtkrc”
    打破;
  科幻
做完了

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

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

样式“用户字体” {
    font_name =“ $ font”
}

widget_class“ *”样式“用户字体”

gtk-font-name =“ $ font”

紧急行动

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

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


0

我自己构建了Openjdk 8u40,并应用了tuxjdk补丁。此外,我不得不创建一个名为local.conf/etc/fonts/,以覆盖Java的FONTMAP其逻辑字体一样DialogMonospaced等在此之后,基于Swing的应用提高了很多。在这里看看。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.