Java程序中文字体配置

出自Linux Wiki

在2009年10月29日 (四) 02:45由Chenxing (讨论 | 贡献)所做的修订版本

Linux中,JAVA程序的中文默认可能不正常:或是显示为方框,或是不够清晰。这是由于JRE字体配置不正确所导致的,修改JRE的字体配置文件可以解决这个问题。

Ubuntu用户可以考虑参考这篇文章完成配置。

目录

配置文件位置

JRE的字体配置文件存放在[1]

$JAVA_HOME/jre/lib/fontconfig.properties

其中,$JAVA_HOME环境变量表示JRE所在的路径,在安装了JAVA环境的系统中,通常已经设定。如在DebianUbuntu中,$JAVA_HOME可能为/usr/lib/jvm/java-6-sun

如果这个文件不存在,可以从fontconfig.properties.src复制一个:

cp $JAVA_HOME/jre/lib/fontconfig.properties.src $JAVA_HOME/jre/lib/fontconfig.properties

为了避免受当前fontconfig配置文件的影响,备份并移除所有bfc文件:

mkdir $JAVA_HOME/jre/lib/bfcbak/
mv $JAVA_HOME/jre/lib/*.bfc $JAVA_HOME/jre/lib/bfcbak/

准备字体

首先请确定要使用的字体,如Windows中的宋体、黑体,或Linux中文泉驿正黑体。

本文以宋体为例做介绍,这需要你有一个Windows系统。先将Windows中的WINDOWS\Fonts\simsun.ttc文件复制到某个文件夹,并记录其地址,如可将其复制到$JAVA_HOME/jre/lib/fonts

Hint.gif
提示:
如果使用文泉驿正黑,可复制wqy-zenhei.ttcwqy-zenhei.ttf。要使用黑体,则复制Windows中的simhei.ttf

修改配置文件

打开配置文件,如$JAVA_HOME/jre/lib/fontconfig.properties,并对其进行如下操作:

加入字体定义

version=1后面加入[2]

allfonts.chinese-arphic1=-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1

如果原来文件中还有设置allfonts.chinese-arphic1的,就把它们注释掉。

指明字体路径

在配置文件中加上字体文件的完整路径:

filename.-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1=simsun.ttc的完整路径
Hint.gif
提示:
如果使用其它TrueType字体,请使用mkfontscale生成的文件中的字体名替换-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1,如使用黑体时,只需把simsun换成simhei。[3][4]

修改字体搜索序列

在配置文件中查找sequence.allfonts,如果其后的sequence开头的行中有chinese-arphics1,可以略过此步,否则在其后面加入一行:

sequence.fallback=chinese-arphic1

相关资料

  1. Sun网站上对fontconfig的介绍
  2. http://blogs.sun.com/wind/entry/linux%E4%B8%8Bjava%E7%9A%84%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E8%AE%BE%E7%BD%AE
  3. http://www.builder.com.cn/2008/0619/935502.shtml
  4. http://hiei.yeax.com/archives_48.html
个人工具
简体繁体转换