在Ubuntu下运行Java GUI应用程序时发现里面的汉字都是显示为方框,同时我系统中部分应用程序打开时里面的汉字也显示为方框。
试着移除 /etc/fonts/conf.d/49-sansserif.conf 但是没效果
现在Linuxidc搜集整理了一些解决办法:
一、
出现方框字的原因是java 运行环境中找不到相应的字体,所以想到把系统的字体拷贝到java运行环境下去,方法如下:
cd /usr/local/jdk1.5.0_16/jre/lib/fonts/fallback //首先进入你的jdk安装路径下的字体位置
sudo cp /usr/share/fonts/truetype/arphic/uming.ttc ./ //拷贝系统中的字体到该目录下
sudo mkfontdir //让设置字体生效
sudo mkfontscale
这个时候再去看看,一切正常了 哈哈!
二、也许上面也是个办法,我没实验过,不过我们要搞清楚,其实这个问题出现的原因是java配置文件的一个小BUG,他把字体后缀ttc弄错成了ttf。
最简单的解决办法是:
编辑配置文件
sudo gedit /usr/lib/jvm/java-6-sun/jre/lib/fontconfig.properties
找到
filename.-arphic-ar_pl_shanheisun_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf
filename.-arphic-ar_pl_uming_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf
后缀改成ttc就可以了,因为我们usr/share/fonts中的文件就是uming.ttc而不是ttf结尾。