2009年5月12日 星期二

OpenJDK的字體設定

在ArchLinux底下裝了OpenJDK6,結果發現附帶的OpenJDK Policy Tool執行後中文全為方框
執行其他JAVA程式也一樣,本來以為是執行環境下編碼問題,結果竟然是預設字體問題....


我的作法:
1.在JAVA_HOME/jre/lib底下找到fontconfig.properties.src
2.在裡面加入filename.字型名稱 = 字型檔位置
3.找到allfonts.chinese-big5=AR PL ZenKai Uni
把AR PL ZenKai Uni改成剛剛設的字型名稱
4.另存為fontconfig.properties

觀察一下原因,這所謂的AR PL ZenKai Uni指的是"文鼎PL中楷Uni"
在fontconfig裡面也找的到這一行
filename.AR_PL_ZenKai_Uni=/usr/share/fonts/TTF/ukai.ttf
而這個字型應該是包含ttf-arphic-ukai這個套件裡,
不過這個套件裝的是ukai.ttc TTC(True Type Collection)
所以JAVA找不到這個字型然後變方框
於是改成
filename.AR_PL_ZenKai_Uni=/usr/share/fonts/TTF/ukai.ttc
結果,中文出來了,但是效果很差......
於是乾脆換成系統用的文泉驛正黑
加入
filename.文泉驛正黑=/usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc
把 allfonts.chinese-big5=AR PL ZenKai Uni
改成 allfonts.chinese-big5=文泉驛正黑

清晰的中文就出來了

*各家的套件安裝位置都不同,反正原則就是找到fontconfig.properties
跟要用的字型檔位置

*fontconfig詳細設定還是要到sun網站找....
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html#loading

OpenJDK的這個字型設定難道是認為ukai.ttf是大家都拿這個當預設字型嗎?
但是套件庫有"文鼎新中楷"可裝還有多少人會自己去裝"文鼎中楷"阿...
不知道其它distribution會不會遇到
但是我在Arch上要改這個fontconfig...

跟windows上無腦安裝比起來,在linux底下真是麻煩多了XD

沒有留言: