在Linux中,有时Java程序的中文字体显示可能会显示为乱码或者方框,有时还会出现虽然没有乱码但文字显示的不清晰.这通常是由于Jre中字体相关设置不正确所导致的,修改Jre的字体配置文件可以解决这些问题.
解决Java字体显示为乱码或方块
找到配置文件
通常,Jre的字体配置文件存放在
1 | $JAVA_HOME /jre/lib/fontconfig .properties |
其中,$JAVA_HOME环境变量表示Jre所在的路径,在安装了Java环境的系统中,通常已经设定。如/usr/lib/jvm/java-7-openjdk
如果不存在这个文件,可以检查看看有没有fontconfig.properties.src 并将这个文件复制一份命名为fontconfig.properties
添加字体
准备想要在Java程序中使用的字体(需要带中文字符),将字体文件或字体文件的符号链接复制到$JAVA_HOME/jre/lib/fonts
修改配置文件
到存放有字体文件或字体符号链接的文件夹,如$JAVA_HOME/jre/lib/fonts,运行下述命令:
12345678 | # mkfontscale # cat
grep # wqy-microhei.ttc |
编辑$JAVA_HOME/jre/lib/fontconfig.properties文件,在version=1后面加入:
1 | allfonts.chinese-arphic1=-misc-wenquanyi |
注意allfonts.chinese-arphic1=后面加的是前面输出的字体名后面的部分.如果原来文件中还有allfonts.chinese-arphic1开头的行,就把它们注释掉.
在配置文件中查找sequence.allfonts,如果其后的sequence开头的行中有chinese-arphics1,可以略过此步,否则在其后面加入一行:
1 | sequence.fallback=chinese-arphic1 |
解决字显示不清晰
有时运行的Java程序显示模糊或者字体边缘锯齿严重,可以在/etc/profile或~/.bashrc末尾加入:
12 | export
'-Dawt.useSystemAAFontSettings=lcd' #export |
其中这两行是两种不同的渲染方法,可以根据爱好选择其中一种.
在Linux中,有时Java程序的中文字体显示可能会显示为乱码或者方框,有时还会出现虽然没有乱码但文字显示的不清晰.这通常是由于Jre中字体相关设置不正确所导致的,修改Jre的字体配置文件可以解决这些问题.
解决Java字体显示为乱码或方块
找到配置文件
通常,Jre的字体配置文件存放在
1 | $JAVA_HOME /jre/lib/fontconfig .properties |
其中,$JAVA_HOME环境变量表示Jre所在的路径,在安装了Java环境的系统中,通常已经设定。如/usr/lib/jvm/java-7-openjdk
如果不存在这个文件,可以检查看看有没有fontconfig.properties.src 并将这个文件复制一份命名为fontconfig.properties
添加字体
准备想要在Java程序中使用的字体(需要带中文字符),将字体文件或字体文件的符号链接复制到$JAVA_HOME/jre/lib/fonts
修改配置文件
到存放有字体文件或字体符号链接的文件夹,如$JAVA_HOME/jre/lib/fonts,运行下述命令:
12345678 | # mkfontscale # cat
grep # wqy-microhei.ttc |
编辑$JAVA_HOME/jre/lib/fontconfig.properties文件,在version=1后面加入:
1 | allfonts.chinese-arphic1=-misc-wenquanyi |
注意allfonts.chinese-arphic1=后面加的是前面输出的字体名后面的部分.如果原来文件中还有allfonts.chinese-arphic1开头的行,就把它们注释掉.
在配置文件中查找sequence.allfonts,如果其后的sequence开头的行中有chinese-arphics1,可以略过此步,否则在其后面加入一行:
1 | sequence.fallback=chinese-arphic1 |
解决字显示不清晰
有时运行的Java程序显示模糊或者字体边缘锯齿严重,可以在/etc/profile或~/.bashrc末尾加入:
12 | export
'-Dawt.useSystemAAFontSettings=lcd' #export |
其中这两行是两种不同的渲染方法,可以根据爱好选择其中一种.