2011年5月18日星期三

linux 下java 程序中文乱码方块字的解决办法

经过了将近4个小时的折腾。终于把java程序的方块字问题给解决了, 其实自己以前也遇到过整个问题,按照网上的说法做了很多次都没有成功,也就放弃了, 这次是要用到 freemind 所以就狠下心来折腾了一番。。。。

其实,linux 下java  程序的中文乱码,也就是有些字体能够显示出来,但是有些字体显示是方块的问题, 根本在与jre 的环境中缺少中文字体库造成的。。。 现在把我自己的解决方法总结一下。。。

首先说一下我的平台, 我使用的 ubuntu 10.04   默认安装了open-jdk   ,  因为兼容性和习惯的问题。。我又重新安装的sun java

首先  如果你使用的也是 UBUNTU  的10.04 以及以后的版本的话, 需要添加  sun java 的源
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"

 

然后更新系统
sudo apt-get update



然后安装

apt-get install sun-java6-bin sun-java6-jre freemind



最后一个freemind 是我要安装的一个依赖java的程序。



在安装结束后,需要 设置默认的java


sudo update-alternatives --config java


这时电脑会列出你的机子上已经安装的java版本, 选择对应的版本。

在这里我选择  sun java 6

然后修改环境变量

vim .bashrc # 增加下述

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export CLASSPATH=$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$PATH

----------------

接下来就是 在jre 环境下添加中文字体了。。

首先

cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/

如果没有fonts 目录,需要你自己建立,

然后建立fallback 文件夹

sudo mkdir fallback 

然后进入fallback 文件夹(网上的好多版本都没有提到进入fallbak 文件夹,误导了很多人。。。)

接下来你需要看你的本地的机子上都安装有什么字体库,一般的字体都安装在, usr/share/fonts/truetype/ 文件夹下,

如果你本地没有中文字体,可以去ubuntu 软件中心 去安装, 直接搜索ttf 就可以搜索到很多, 比如 Ukai,   UMing,   如果安装后你知道不到字体,

可以通过 locate 命令来查找



可以线通过sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc wqy-zenhei.ttc  先建立软链接, (前提是你已经安装了对应的字体,不一定是zenhai.ttc)

然后, sudo mkfontdir   ,sudo mkfontscale

, 如果你在做了上述后还是没有解决的话,可以直接将字体, 比如,UMing.ttc  直接拷贝到fallback 文件夹下去。

-----------------------------------------------

哎,总算把困扰好久的java程序方块字的难题给解决了,  如果你按照我的方法做了, 还没有解决,欢迎留言,

没有评论:

发表评论