2012-12-11 11 views
1

我正在嘗試設置kSar java工具來進行sar數據可視化。 除了字體設置,一切都很好。在linux中指定java工具的字體

kSar用戶jfreechart建立圖形,它使用一些奇怪的不可讀的字體。下面是輸出exapmle:

enter image description here

我放在〜/ .fonts(順便說一句,我沒有root權限,不能夠更改系統寬)安裝新字體,但是我沒有找到任何辦法指定我想直接在java中使用哪種字體。

我試圖改變字體設置〜/ .fonts.conf中和FC-比賽告訴我:

$ fc-match -s 
DejaVuSans.ttf: "DejaVu Sans" "Book" 
n019003l.pfb: "Nimbus Sans L" "Regular" 
s050000l.pfb: "Standard Symbols L" "Regular" 

〜/ .fonts.conf中內容是:

<!--?xml version="1.0"?>--> 
<!--DOCTYPE fontconfig SYSTEM "fonts.dtd">--> 
<!-- ~/.fonts.conf for per-user font configuration --> 
<fontconfig> 
<alias> 
    <family>sans-serif</family> 
    <prefer> 
     <family>DejaVu Sans</family> 
    </prefer> 
</alias> 
<alias> 
    <family>monospace</family> 
    <prefer> 
     <family>DejaVu Sans</family> 
    </prefer> 
</alias> 
<match> 
    <test name="family"><string>Arial</string></test> 
    <edit name="family" mode="prepend" binding="strong"> 
     <string>DejaVu Sans</string> 
    </edit> 
</match> 
<match> 
    <test name="family"><string>helvetica</string></test> 
    <edit name="family" mode="prepend" binding="strong"> 
     <string>DejaVu Sans</string> 
    </edit> 
</match> 
</fontconfig> 

和Java讀取這個文件(在發生錯誤的情況下發生錯誤),但沒有任何變化。

在另一個盒子上,它可以使用可讀標籤(在同一個sar文件上)。有什麼方法可以解決它嗎?

enter image description here

回答

0

最後找到解決方案。這是非常骯髒的黑客,不幸的是,它是我發現的唯一工作方式。 每次我需要啓動這個java時,我會生成特殊的.fonts.conf來禁止除我需要的所有字體。我這樣做的代碼:

echo '<!--?xml version="1.0"?>--> 
<!--DOCTYPE fontconfig SYSTEM "fonts.dtd">--> 
<!-- ~/.fonts.conf for per-user font configuration --> 
<fontconfig>' > ~/.fonts.conf 
# here fc-list will produce small warning about bad ~/.fonts.conf 
# don't worry about it 
fc-list | grep -vi EXCLUDE_FONT | while read FONT ; do 
echo "<rejectfont><pattern><patelt name=\"family\"><string>${FONT%%:*}</string></patelt></pattern></rejectfont>" >> ~/.fonts.conf ; 
done 
echo "</fontconfig>" >> ~/.fonts.conf 

當然,我做備份現有的〜/ .fonts.conf並將其放回到java完成其工作後。

希望有一天有人告訴我真正的unix方式解決方案(: