kingctx530 wrote:這個不是很容易找的到嗎...??
到sun-jdk-*/jre/lib/底下建立一個fallback的資料夾
再把你的字型檔link過來就能用了吧...我跑netbeans都是這樣.....不然就會口口 ,我一般都用wqy-zenhei的字型

我不覺得很容易找啊XD
可能我的關鍵字太糟了
試過"java default font" "java 預設字型" ... 不知道為什麼沒看到這個方法
所以我昨天已經寫一個script來改fontconfig.properties了
嗯...好處就是這樣可以分開設定襯線字型、無襯線字型、等寬字型 ... (炸
不過不管是哪個方法都是每次裝新的jre/jdk升級就死掉了
所以只好用/etc/portage/bashrc裡面的post_src_install硬上
話說後來我發現icedtea的fontconfig.properties比較乾淨
至少是用人類看得懂的字型名稱 (如 DejaVu Sans)
而不是那種古早的方式 (如 -misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1)
而且官方portage裡面也已經有版本被mark成stable了
試用一下感覺還不錯 看來要把sun jdk拿掉的日子不遠了
附上兩段script
1. fix-java-fonts.pl: sun-jdk 用
Code: Select all
#!/usr/bin/perl
sub map_font
{
my ($family, $style, $encoding) = split /\./, shift;
if ($family eq "serif") { # 襯線
return "dynalab-pmingliu"; #新細明體
}
elsif ($family eq "monospaced") { # 等寬
return "dynalab-mingliu"; # 細明體
}
return "microsoft-microsoft jhenghei"; # 微軟正黑體 (預設)
}
while (<>) {
s/^(.+)=-.+?-(medium|bold|demibold|italic)/"$1=-" . map_font($1) . "-$2"/ge;
print;
}
使用方式:
Code: Select all
$ perl -i fix-java-fonts.pl /opt/sun-jdk-1.6.0.17/jre/lib/fontconfig.properties
2. gen-icedtea-fontconfig.sh: icedtea用
Code: Select all
#!/bin/bash
# 襯線
serif="PMingLiU"
# 無襯線
sansserif="Microsoft JhengHei"
# 等寬
monospaced="MingLiU"
dialog="$sansserif"
dialoginput="$sansserif"
fontnames=("$serif" "$sansserif" "$monospaced")
echo "version=1"
for n in serif sansserif monospaced dialog dialoginput ; do
for s in plain bold italic bolditalic ; do
for c in latin-1 japanese-x0208 korean chinese-big5 chinese-gb18030 ; do
echo "$n.$s.$c=${!n}"
done
done
done
cat <<_EOF_
sequence.allfonts=latin-1
sequence.allfonts.Big5=chinese-big5,latin-1
sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
sequence.allfonts.EUC-KR=korean,latin-1
sequence.allfonts.GB18030=chinese-gb18030,latin-1
sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
_EOF_
# 用fc-match程式產生字型檔路徑
for f in "${fontnames[@]}" ; do
echo "filename.${f// /_}=`fc-match -v "$f" | sed -rn '/file:/{s/^.*"(.+)".*$/\1/g; p}'`"
done
使用方式:
Code: Select all
$ bash gen-icedtea-fontconfig.sh >/opt/icedtea6-bin-1.6.2/jre/lib/fontconfig.properites