合理配置JRE,linux中文显示一样靓丽



linux诸多发行版里自带的java环境往往是Gnu的gij,只支持到1.4版本的代码编译。因此往往需要用户自己安装sun提供的jdk。这样就又带来一个问题:使用自己安装的JDK运行java程序的时候,中文就变成乱码了(swing等GUI组件的中文会变成方框)。

网上也有很多解决此问题的方法,比如往JRE某目录里拷贝中文字体等等,我以前也使用过,有时候并不管用(可能是我人品不行)。一直苦恼没有一个所有发行版都通用的方法,而且我也厌倦了各种很繁琐配置方法。前不久看sun的javadoc,才有了新的发现,原来JRE的字体一样是可以配置的。在JRE目录lib子目录下,有很多类似fontconfig.xxx.properties.src的配置文件。这些文件并不是直接其作用,需要将其后的“.src”去掉才发挥作用。

例如,RedHat公司的linux发行版使用类似如下的配置文件fontconfig.RedHat.x.0.properties,其内容为:

[root@lvs2 lib]# cat fontconfig.RedHat.8.0.properties.src

# @(#)linux.fontconfig.RedHat.properties 1.9 05/08/08

#

# Copyright 2003 Sun Microsystems, Inc. All rights reserved.

#

# Version

version=1

# Component Font Mappings

allfonts.chinese-cn-iso10646=-misc-zysong18030-medium-r-normal–-%d---c--iso10646-1

allfonts.chinese-tw-iso10646=-arphic technology co.-ar pl mingti2l big5-medium-r-normal–-%d---c--iso10646-1

allfonts.lucida=-b&h-lucidasans-medium-r-normal-sans--%d---p--iso8859-1

………………………………(略去一些内容,太多)

# Component Font Mappings下第一段就是有关中文显示的定义。问题就出在这里了。把它改为如下格式,就可以正常显示中文了:

allfonts.chinese-gb18030=-misc-zysong18030-medium-r-normal–-%d---c--iso10646-1

allfonts.chinese-gb18030.motif=-misc-zysong18030-medium-r-normal–-%d---c--iso10646-1

allfonts.chinese-big5=-arphic technology co.-ar pl mingti2l big5-medium-r-normal–-%d---c--iso10646-1

allfonts.chinese-big5.motif=-arphic technology co.-ar pl mingti2l big5-medium-r-normal–-%d---c--iso10646-1

allfonts.lucida=-b&h-lucidasans-medium-r-normal-sans--%d---p--iso8859-1

下面是sun官方网站关于JRE字体配置文件的说明:

http://java.sun.com/javase/6/docs/technotes/guides/intl/fontconfig.html

加载评论框需要翻墙