其实,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程序方块字的难题给解决了, 如果你按照我的方法做了, 还没有解决,欢迎留言,