JDK 1.5 Fontconfig

From openSUSE

This article is in need of attention!
You are welcome to improve this article. Refer to this article's discussion page for more information.


  • 使用說明

Linux下jdk1.5的安裝及中文顯示問題解决方案

Windows下安裝和環境設置以及中文顯示可以説是傻瓜式的。但是Linux下就不會那麽順利了,尤其是中文字體的顯示一直以來總是困擾着用户。Jdk 1.5.0的中文顯示設置和j2sdk 1.4.x時相比已經有了很大的改變。本文着重介紹jdk1.5在Linux操作系統下的安裝、環境變量設置和中文顯示問題的解决。


1 首先,從sun下載jdk1.5的安裝文件,一般有兩種。 下載地址:http://java.sun.com/j2se/1.5.0/download.jsp Linux RPM in self-extracting file (jdk-1_5_0-linux-i586-rpm.bin, 42.50 MB) Linux self-extracting file (jdk-1_5_0-linux-i586.bin, 43.95 MB)

説一下兩個安裝文件的區彆,Linux RPM in self-extracting file是一個把rpm安裝包封裝在壓縮包内的二進制格式,在linux操作系統的命令行下,給文件加上執行的權限chmod a+x jdk-1_5_0-linux-i586-rpm.bin,然後./jdk-1_5_0-linux-i586-rpm.bin之後可以得到jdk- 1_5_0-linux-i586.rpm這個rpm包。前者的好處是容易安裝和維護,傻瓜式的。而後者則適合高級的用户,相當于一個zip版本的“緑 色”jdk,没有安裝程序,安裝完之後可能需要做一些鏈接(具體可以參考jdk安裝指南文檔)。同様地給後者加上執行權限之後直接執行二進制文件即可得到 jdk 1.5.0,一般用户的習慣都是將jdk放在/usr/java下,rpm安裝後默認是在/usr/java下。

2 安裝好之後要做的便是環境變量的設置,也可分為兩種不同的情况。 第一種是對于單個用户的的環境變量設置。需要修改用户所對應的.bash_profile文件。我們可以通過vi ~/.bash_profile來編輯當前用户的bash_profile文件,當然你也可以用你自己喜歡的編輯器。在開頭或者適當的地方插入一下代碼:

export JAVA_HOME=/usr/java/jdk1.5.0
export CLASSPATH=.
export PATH=$JAVA_HOME/bin:$PATH

然後保存文件,注銷重新登陸之後在控制台下輸入java –version,如果出現一下信息則説明安裝設置已經成功。 注意:此代碼是為了看起來簡單,所以没有加上復雜的變量引用,熟悉shell的用户可以參 照第二種方法的代碼進行修改。 java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64) Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)

第二種是設置Linux的全局環境變量(需要root權限),修改/etc/profile,在適當的地方加入以下代碼

JAVA_HOME=/usr/java/jdk1.5.0
PATH=$JAVA_HOME:$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH

修改完成後保存,注銷當前用户重新登陸後按照第一種同様的方法進行測試查看是否成功。 至此,基本的安裝和環境變量設置已經完成了。 至于正確顯示applet的瀏覧器的插件安裝請查看Sun的文檔: http://java.sun.com/j2se/1.5.0/install-linux.html#plugin http://java.sun.com/j2se/1.5.0/manual_install_linux.html 接下來要説如何修改配置來正確顯示中文字體。


3 最後來解决一下中文字體的顯示問題。Jdk1.5.0的字體配置和1.4.x的時候相比有了很大的差彆。 雖然能顯示一下中文,但是有一大半是無法正常顯示的方塊,很不爽。下面我們就來解决這個問題。 先來看一下Sun公司對JRE1.5.0版的中文字體設置的官方説明中的一些資料: 介紹一下其字體配置文件的加載方案。其加載順序為(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(可以從windows下拷貝一份到linux下)拷貝到JRE的字體目録$JAVA_HOME/jre/lib/fonts下,接着編輯字體目録下的文件fonts.dir,把第一行的數字加1,然後在最後加一行加上: simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0 然後保存文件。 最後把字體配置文件改名為fontconfig.RedHat.properties這種形式(Fedora Core x也是Redhat的衍生物),把$JAVA_HOME/jre/lib下多餘的fontconfig開頭的文件全部移到新建的bak目録下,做為備份, 如果一次不成功還用的着。 注意:如果你的Linux不是Redhat和Fedora Core系列,請按照自己的發行版本對字體配置文件做相應的修改,參照Sun公司的資料,jds、Suse和Turbo應該没問題了。 然後再在控制台下執行ControlPanel 自己的程序也能完美的顯示中文字體了! 4 參考文獻 Sun公司對JRE1.5.0版的中文字體設置的官方説明: http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html