Sun JRE 1.5.0版的中文字體設置

Sun JRE 1.5.0版的中文字體設置(轉載)

  Sun公司的JRE(JAVA運行庫)1.5.0版採用的字體設置方案跟1.4.2版的相去甚遠。如果設置不當,Java程序中的中文會表現爲方格。
本文給出了一般性的字體設置方法,並且在最後給出了本機測試通過的字體配置文件以供下載。                                    




首先介紹一下其字體配置文件的加載方案。其加載順序爲(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"。
而Version字段指該OS的版本號。

在這些配置文件中,僅.properties文件是文本文件。其格式跟JRE1.4.2版的不同。文件分爲幾段,並在每段開始時標明。
我們需要關注的僅有兩段:Component Font Mappings和Search Sequences。
前者指定字體,後者指定要使用的properties的搜索順序。
知道了這些,配置起來就簡單了。

首先,必須先把字體文件(這裏用宋體Simsun.ttf)拷貝到JRE的字體目錄JavaHome/lib/fonts下,然後編輯字體目錄下的文件fonts.dir,把第一行的數字加1,然後在最後加一行,寫上:
simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
然後保存。

然後,轉到目錄JavaHome/lib下,隨便找一個.properties.src文件,用文本編輯器打開,並編輯如下:

# @(#)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=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0

# Search Sequences

sequence.allfonts=zh-1

# Exclusion Ranges

# Font File Names

然後按照上面所述的文件名格式保存在這個目錄下。如Redhat系統的就保存爲fontconfig.RedHat.properties, WindowsXP的就保存爲fontconfig.XP.properties,以此類推。

現在,啓動Java程序看看,漂亮的JRE1.5的中文界面是不是出來了?

參考資料:

本機(SuSE Linux 9.1 personal+JDK-1.5.0)測試通過的fonts.dir及fontconfig.SuSE.properties文件(.tar.gz格式):
http://blog.blogchina.com/upload/2004-10-29/20041029103119811400.gz

Sun公司對JRE1.5.0版的中文字體設置的官方說明:
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

【補充說明】

本人在自己的操作系統下沒有發現simsun.ttf, 所以用的是simfang.ttf文件, 對應的font.dir中, 也是使用simfang來替換的,在linux redhat10/jdk1.5.0_03測試通過, 一下是我的項目中使用這個jdk生成的圖片:
中文圖片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章