14.11. Java 中文程式設計

FreeBSD 下的 java distribution 分為 Native JDK For FreeBSD、 Sun JDK For Linux、IBM JDK For Linux、Blackdown JDK For Linux, 都可以在 /usr/ports/java 目錄下找到, For Linux 的部分只要裝上 Linux 模擬器就可以執行, 而 Native JDK 就必須自己從 source 編譯。 而且安裝上都必須依照步驟先去網站上下載所需的檔案, 放置到 /usr/ports/distfiles

以最困難的 java/jdk13 安裝為例, 您必須到 Sun Community Source Licensing 下載 j2sdk-src-scsl.zip 和 j2sdk-bin.scsl.zip 這兩個檔案,並到 Java 2 on FreeBSD 下載 bsd-jdk14-patches.tar.gz。 又因為編譯的時候需要 java/linux-sun-jdk14, 所以還需要先安裝好才行。 並且根據編譯的需求,我們還需要一個 linprocfs, 您可以用 mount -t linprocfs linprocfs /compat/linux/proc 來將 linprocfs 掛上。並在系統上預留 2.5GB 的硬碟空間來進行編譯, 當以上都準備就緒,就可以開始編譯然後等明天再來驗收囉。

想知道您的 JDK 或 JRE 會用什麼樣的編碼方式來和作業系統溝通, 請執行下面的 Java 程式:

public class ShowNativeEncoding {
  public static void main(String[] args) {
    String enc = System.getProperty("file.encoding");
    System.out.println("NativeEncoding:" + enc);
    System.out.println("成功");
  }
}
% javac ShowNativeEncoding.java
% java ShowNativeEncoding
NativeEncoding:Big5
成功

如果出現以上的訊息,就表示中文正常,如果沒有的話, 請確定您的 LC_CTYPE 是 zh_TW.Big5,或是用 javac -encoding CP950 ShowNativeEncoding.java 來進行編譯,應該會出現如上的顯示才對。

Note: Big5:這是繁體中文 de facto 標準。

MS950 或 Cp950:ASCII + Big5,用於台灣和香港的繁體中文 MS Windows作業系統。

筆者的環境設定 ~/.cshrc

# For JAVA jdk1.3.1
setenv JAVA_HOME /usr/local/jdk1.3.1
setenv CLASSPATH /usr/local/jdk1.3.1/lib/tools.jar:/usr/local/share/java/classes/:./
setenv PATH /usr/local/jdk1.3.1/bin:$PATH

如果要執行 applet 或是 swing的話, 請按照以下步驟設定才能正確的看到中文字, font.properties.zh_TW 為 Forth 提供, 該設定檔專給 arphicttf 使用:

# cd /usr/local/jdk1.3.1/jre/lib/
# fetch http://netlab.cse.yzu.edu.tw/~statue/freebsd/conf/font.properties.zh_TW

經筆者測試在 mozilla-1.0 + jdk1.3.1p6_4 之後已經不需要設定就可以正確的看到中文, 如果沒辦法就手動作如下步驟:

# cd /usr/X11R6/lib/mozilla/plugins/
# ln -s /usr/local/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so libjavaplugin_oji.so

Figure 14-4. applet snapshot

Figure 14-5. swing snapshot

參考: Java繁體中文處理完全攻略(一)Java 繁體中文處理完全攻略(二)

WWW: http://java.sun.com/