`

java环境变量设置

    博客分类:
  • Java
阅读更多

windows xp下配置JDK环境变量:

1.安装JDK,安装过程中可以自定义安装目录等信息(例如选择安装目录为D:\java\jdk1.6.0_03),我这里选择默认安装,即jdk安装目录为C:\Program Files\Java\jdk1.6.0_03;

2.安装完成后,右击“我的电脑”,点击“属性”;

3.选择“高级”选项卡,点击“环境变量”;

4.如果你设置的环境变量只想针对你现在登录的这个用户生效,则你在xx的用户变量中设置;如果你想对所有使用这台计算机的用户都生效,则在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”(在弹出的环境变更窗口中,上面窗口的设置用于个人环境变量,只有以该用户身份登录系统时才有效,而下面窗口中的设置是系统变量设置,对所有用户都有效);

5.JAVA_HOME指明JDK安装路径,就是刚才jdk的安装路径C:\Program Files\Java\jdk1.6.0_03,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依据此变量);   
Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%\bin;
CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%\jre\lib\dt.jar;%JAVA_HOME%\jre\lib\tools.jar (要加.表示当前路径)
%JAVA_HOME%就是引用前面指定的JAVA_HOME;注意:使用%JAVA_HOME%设置Path,classpath时,JAVA_HOME=C:\Program Files\Java\jdk1.6.0_03后面不能有分号(;),
否则会无效;因为这样的话,你的path其实是被设置成了PATH=C:\Program Files\Java\jdk1.6.0_03;\bin; (你可以在命令行中用path命令查看),所以导致你的path设置无效了.如果你设置path时,直接使用
path=C:\Program Files\Java\jdk1.6.0_03\bin;,如此设置的话,你的JAVA_HOME的值后面可以加上分号(;).

6.“开始”->;“运行”,键入“cmd”;

7.键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功.


下面分别对我们设置的三个环境变量:JAVA_HOME、PATH 和 CLASSPATH进行更进一步的解释:

JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。

PATH:path环境变量的作用是设置供操作系统去寻找和执行应用程序的路径列表,也就是说,如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照path环境变量指定的目录依次去查找,以最先找到的为准.
如果找完path中的路径也不能找到,则报错。javac.exe(Java源文件的编译工具),java.exe(Java字节码解释程序,负责解释执行Java字节码文件,就是一个JVM) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。
因此我们应该将该路径添加到path变量中。path环境变量可以存放多个路径,路径和路径之间用分号(;)隔开(而在 Linux 下,分隔符是冒号 (:))。
注意:设置path时,为了不必要的错误或麻烦,建议将%JAVA_HOME%\bin;置于path环境变量的起始位置,也就是最前面.因为很多的java安装程序或java开发的安装软件在安装时,会拷贝一份java.exe到C:\WINDOWS\system32目录下(我现在的机器在这个目录下就有一个java.exe程序),而path查找执行命令时,是以最先找到的为准的;所以如果你的C:\WINDOWS\system32路径在path环境变量中位于%JAVA_HOME%\bin之前,这样就可能给你带来不必要的麻烦.我就曾经遇到个这样的一个问题,因为我曾经安装一个用java开发的平台时,这个平台只能在jdk1.5之前的版本下运行,于是我在我的机器中安装了一个jdk1.5,
并且重新设置了java环境变量指向这个新安装jdk1.5.但因为我的系统不干净,在C:\WINDOWS\system32已有了一个java.exe,是jdk1.6的,所以安装这个软件时老是出错,最后好不容易才找到原因所在.除了java.exe版本不同之外,还有可能在C:\WINDOWS\system32下的java.exe文件已经损坏,也会导致一些不必要的错误产生,因此在此建议大家一定要将%JAVA_HOME%\bin;置于path环境变量的最前面.当你的计算机上安装了多个java开发工具包时,你要想知道某次执行的Java命令属于哪个开发工具包,只要在运行java.exe的时候加上verbose参数就行了,如在命令行中的格式如下:
java -verbose
这样java虚拟机启动时,就会显示其详细的加载过程信息,从加载的详细信息中,你就可以看出所运行的Java命令属于哪一个Java开发工具包了.

CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar 包含在 CLASSPATH 中。

 

下面是一些关于设置classpath的测试,不管你的系统环境变量中是否设置了classpath,下面的测试结果都是一样的:

在d:\下面建一个文件夹test,在test文件夹中创建一个HelloWorld.java文件,内容如下所示:

public class HelloWorld{

     public static void main(String args[]){
             System.out.println("My first Java Program!");
         }   
}
 

编译好的HelloWorld.class文件也位于test文件夹下面.下面进行一些测试:
步骤1:在命令行窗口下进入d:\test的目录,运行java HelloWorld,(对java HelloWorld命令,从Windows的方面看,java是一个命令,HelloWorld是这个命令的参数.从Java的方面来说,java命令是启动了一个虚拟机,HelloWorld是这个虚拟机上能独立运行的类,而不是HelloWorld.class文件),结果如下所示:
D:\>cd test

D:\test>java HelloWorld
My first Java Program!

步骤2:在命令行窗口下进入一个除d:\test以外的目录,如:D:\xxlong,运行java HelloWorld,结果错误提示找不到这个HelloWorld类;如下所示:
D:\>cd xxlong

D:\xxlong>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld

步骤3:执行set classpath=d:\test,再运行java HelloWorld,结果正常打印出信息,如下所示:
D:\xxlong>set classpath=d:\test

D:\xxlong>java HelloWorld
My first Java Program!
Java虚拟机除了在classpath的环境变量指定的目录中查找要运行的类,会不会也在当前目录下查找呢??继续用实验来说明这个问题:

步骤4:进入d:\test目录,也就是HelloWorld.class所在的目录,再执行
set classpath=d:\xxlong
这里指定的d:\xxlong目录可以用除了d:\test目录这外的任意目录来替代,再次运行java HelloWorld,结果却再次告诉我们找不到HelloWorld这个类.
如下所示:
D:\>cd test

D:\test>set classpath=d:\xxlong

D:\test>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
这个结果似乎告诉我们,Java虚拟机查找类的过程是不会在当前目录下查找,只找classpath指定的目录.但这个结论与步骤1及接下来的步骤5中的结论是相矛盾的.

步骤5:还是在d:\test目录下,执行set classpath=d:\xxlong;,注意最后多了个分号(;),或干脆执行set classpath=,即取消classpath环境变量的定义,再运行
java HelloWorld,结果又正常了.如下所示:
D:\test>set classpath=d:\xxlong;

D:\test>java HelloWorld
My first Java Program!

D:\test>set classpath=

D:\test>java HelloWorld
My first Java Program!

步骤6:既然Java总是查找classpath中所指定的路径,可以通过在classpath环境变量中添加一个点(.),如"set classpath=d:\xxlong;.",这个点(.)就代表Java虚拟机运行时的当前工作目录。
D:\test>set classpath=d:\xxlong;.

D:\test>java HelloWorld
My first Java Program!

分享到:
评论
2 楼 wangjing_jx 2011-01-30  
照片也不错,哈哈
1 楼 wangjing_jx 2011-01-30  
写的不错啊,顶一个

相关推荐

Global site tag (gtag.js) - Google Analytics