2010-04-06 146 views
3

我正在嘗試在第三方Java應用程序中調試與字體相關的問題。特別是,ChemAxon JChem。我一直在諮詢本指南: http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.htmlJava:如何知道我的系統當前使用哪個fontconfig文件?

問題的一部分,是我不確定我的Java安裝程序當前引用哪個fontconfig.properties.src文件。

這裏是我的fontconfig文件:

$ ls fontconfig*src 
fontconfig.Fedora.properties.src fontconfig.properties.src 
fontconfig.SuSE.properties.src fontconfig.Ubuntu.properties.src 

我的系統是CentOS系統,所以我想這可能是要麼ferencing默認fontconfig.properties.src文件或fontconfig.Fedora.properties.src文件,因爲CentOS的和Fedora都是從紅衍生帽子。

那麼,我可以明確地告訴我的系統正在使用哪個fontconfig文件?

感謝,

- 約翰大衛

回答

0

嘗試監視被打開的文件,使用命令行工具lsof的,例如

lsof -r | grep fontconfig 
+0

嘿,感謝您的建議。不幸的是,這隻會在我的〜/ .fontconfig目錄中產生二進制文件。打開這些文件*會*顯示我在/ usr/share/fonts /目錄中字體目錄的一些路徑,但不會顯示實際引用哪個fontconfig.properties文件。 – jkndrkn 2010-04-07 15:37:14

+0

也許它沒有讀取任何一個!你可以嘗試在調試器中進入代碼。 – vickirk 2010-04-07 16:54:52

+0

我懷疑它正在讀取文件,然後立即關閉它.. – Adam 2016-02-04 14:04:39

0

只需使用strace的檢查將這些文件被成功打開:

$ strace -f -e open java ... 2>&1 | grep fontconfig 
[pid 3321] open("/usr/java/jdk1.7.0_55/jre/lib/fontconfig.RedHat.6.bfc", O_RDONLY|O_LARGEFILE) = 115 

如果不告訴你哪些文件它正在使用,很可能它正在使用全系統範圍的fonctconfig。你會得到一個輸出開始這樣便:

[pid 3259] open("/usr/java/jdk1.7.0_55/jre/lib/i386/xawt/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) 
[pid 3259] open("/usr/java/jdk1.7.0_55/jre/lib/i386/xawt/../libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) 
[pid 3259] open("/usr/java/jdk1.7.0_55/bin/../lib/i386/jli/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) 
[pid 3259] open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 116 
0

的JRE類sun.awt.FontConfiguration已經有了記錄此,您只需要啓用它。

  • 將此選項添加到Java -Dsun.java2d.debugfonts=true
  • 編輯的jre/lib目錄/ logging.properties

改變這一行

java.util.logging.ConsoleHandler.level = ALL 

添加此行

sun.awt.FontConfiguration.level = ALL 

而且you'l升再看到這樣的線在你的標準錯誤(記錄器使用標準錯誤出於某種原因)

CONFIG: Read logical font configuration from /your/path/jre/lib/fontconfig.RedHat.6.bfc 
0

您可以用上面的選項,但作爲JDK 7和8的存在與JDK一個問題,fontconfig的文件都沒有拿起任何Linux操作系統。它默認爲OS中存在的libfontconfig。

這是缺陷網址http://bugs.java.com/view_bug.do?bug_id=7175487

相關問題