显示标签为“java学习”的博文。显示所有博文
显示标签为“java学习”的博文。显示所有博文

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

2011年2月13日星期日

JAVA学习笔记之JDK环境变量设置详解

                      在java私塾学习一个多月了,对于JDK环境变量设置想来却总觉得不是很清楚,总结一下自己的理解,让头脑清楚一些。

                      下载好的JDK是一个可执行安装程序,双击安装。将安装路径改为:C:\jdk1.6.0(当然其他路径也可以)。

                      JDK安装完成之后我们进行JDK环境变量设置:

                      我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:

                      (1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK的目录,比如我们的JDK安装在C:\jdk1.6.0目录下,那么在C:\jdk1.6.0\bin目录下就是我们常用的java应用程序,我们就需要把C:\jdk1.6.0\bin这个目录加到path环境变量里面。

                      在系统变量里找到path变量,选择->编辑;(里面已经有很多的变量值,是在变量值的最前面加上C:\jdk1.6.0\bin;)
                      变量名:path
                      变量值:C:\jdk1.6.0\bin;

                      (2)classpath环境变量,是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常,sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于C:\jdk1.6.0\lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量中set classpath=.;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar。

                      在系统环境变量那一栏中点->新建classpath
                      变量名:classpath
                      变量值:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;(注意,CLASSPATH最前面是有个“.”的,表示当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了。);

                      (3)设置JAVA_HOME:

                      一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候,只需输入%JAVA_HOME%即可,避免每次引用都输入很长的路径串;

                      二则是归一原则,当JDK路径改变的时候,仅需更改JAVA_HOME的变量值即可,否则,就要更改任何用绝对路径引用JDK目录的文档,要是万一没有改全,某个程序找不到JDK,后果是可想而知的——系统崩溃!

                      三则是第三方软件会引用约定好的JAVA_HOME变量,不然,你不能正常使用该软件。

                      在系统环境变量那一栏中点->新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径)
                      变量名:JAVA_HOME
                      变量值:C:\jdk1.6.0

                      配置完成下面写一个简单的java程式来测试J2SDK是否已安装成功:

                      1.  public class HelloWorld{  
                      2.       public static void main(String[] args){  
                      3.           System.out.println("Hello");  
                      4.         }  

                      将程式保存为文档名为HelloWorld.java的文档。

                      打开命令提示符窗口,进入到HelloWorld.java所在目录,键入下面的命令

                      1. javac HelloWorld.java 
                      2. java HelloWorld 

                      此时若打印出来HelloWorld则安装成功,若没有打印出这句话,仔细检查以上配置是否正确。
                      JDK环境变量设置成功后你就可以着手学习java了。