今天在 Windows 7 上安装了 Netbeans 6.7 RC 后,首先想到的就是换一种字体,没有想到一个老Bug又出现了,把字体换成 Courier New 后,汉字显示为方格,之前解决过这个问题,但是忘了,让我在网上找了两个小时才把它解决了。
方法:修改 jre/lib/fontconfig.properties 文件。
一般来说java开发人员都是安装了jdk 的,那么就会有两个 jre。
|—java
| |—jdk 1.6.14
| | |—jre
| |—jre
Netbeans 用的到底是哪个 jre?经过几番测试,得知 Netbeans 用的是 java/jdk 1.6.14/jre。
所以,应该修改这个目录下的 fontconfig.properties 文件才会有效。
打开 fontconfig.properties 我们发现,对于英文,monospaced默认就是映射为Courier New字体,但为什么在Java程序里(比如Netbeans)确不能显示呢?
原因:将/fontconfig.properties.src内容复制到fontconfig.properties,然后找到sequence.monospaced.GBK=sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol,可以看出对于中文字体的搜索顺序是先搜chinese-ms936,而chinese-ms936是用allfonts的雅黑来显示英文,所以不好看,因此你只要简单将 chinese-ms936和alphabetic这两个交换一下变成:sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol保存后重新启动 Netbean 就好了。
如果原来修改了netbean的字体设置,需要恢复为默认配置。
另外,还可以在这个配置文件中把显示中文的字体改为你喜欢的字体,如 微软雅黑。