首先,必须先把字体文件(这里用宋体Simsun.ttf)拷贝到JRE的字体目录JavaHome/lib/fonts下,可以使用WindowsXP的C:\WINDOWS\Fonts\Simsun.ttf下的字体。
然后编辑字体目录下的文件fonts.dir,把第一行的数字加1,然后在最后加一行,写上:
simsun.ttf -tlc-SimSun-medium-r-normal--0-0-0-0-c-0-gbk-0
然后除了fontconfig.properties以外,删除所有的fontconfig.properties.OS.version.*文件;
如果没有fontconfig.properties则
#cp fontconfig.OS.Version.properties.src fontconfig.properties 新建一个。
解释:之所以删除那些不必要的文件是引文jre是按照一定顺序搜索字体的配置文件的,如果我们只有一个配置文件,显然就没有出错的机会了。(搜索方式在下面)
fontconfig.properties代码: (这个是SuSE的,只是注释信息不太一样,可以通用,但是最好使用和本机操作系统相近的配置文件)这里只配置中文信息
# @(#)linux.fontconfig.SuSE.properties 1.2 03/10/17
#
# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
#
# Version
version=1
# Component Font Mappings
serif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
# Search Sequences
sequence.allfonts=zh-1
# Exclusion Ranges
# Font File Names
启动一个含中文的java程序试试(^o^)
<jre1.4><jre1.5>的区别:
simsun.ttf拷贝到以下目录:
<jre1.5>:$JAVA_HOME/lib/fonts/
<jre1.4>:/usr/share/fonts/truetype/某一个目录/
X配置文件:
<jre1.5>:不需要修改/etc/X11/XFconfigure-4等文件
<jre1.4>:/etc/X11/XFconfigure-4的FontPath段加上/usr/share/fonts/truetype/某一个目录/。当然,你完全可以和1.5版本一样把字体复制到$JAVA_HOME/lib/fonts/,然后在X的配置文件里面加上FontPath $JAVA_HOME/lib/fonts/
注意:以上方法对于AWT在输出中文时,必须保证文本是在GBK环境下编写的,由于使用gbk输出,因此不能用gbk2iso方法进行转换,如果转换到iso的话应使用iso2gbk在转一次。
Linux字体配置文件的加载方案。其加载顺序为(JavaHome指JRE的根目录,下同):
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,OS字段可以是:
Windows: "98", "2000", "Me", "XP", "2003"。
Solaris:空。
Linux: "Sun", "RedHat", "Turbo", "SuSE"。("Fedora"也属于"RedHat")
而Version字段指该OS的版本号。
在这些配置文件中,仅.properties文件是文本文件。<jre1.5>格式跟<jre1.4.2>版的不同。文件分为几段,并在每段开始时标明。
我们需要关注的仅有两段:Component Font Mappings和Search Sequences。
前者指定字体,后者指定要使用的properties的搜索顺序。
Sun公司对JRE1.5.0版的中文字体设置的官方说明:
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
posted on 2006-06-03 15:55
梦源 阅读(380)
评论(0) 编辑 收藏