看了老紫竹的入门-JAVA运行环境变量的配置图文教程http://blog.csdn.net/java2000_net/archive/2008/09/29/2994204.aspx我看过很多大同小异的环境变量设置。但为什么很多人的CLASSPATH都是像老紫竹一样“CLASSPATH, 在变量值里面填写 C:\Program Files\Java\jdk1.6.0_04\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_04\lib\tools.jar;. 特别要注意的就是最后那个点,一定要写上
????
为什么到了JDK1.6还要写得这么复杂??dt.jar和tools.jar早已经不用设置的了,会自动找到的,不是这样吗?我记得,这种CLASSPATH写法是jdk1.3以前就要这样写的。JDK1.4以后都不需要这样写。而只需要这样C:\Program Files\Java\jdk1.6.0_04\lib.;就可以了。而且很多新的书,也是使用这种简单写法的了。而且使用上,是绝对正常的,我的电脑同样是java开发用的。
附上我自己电脑上的java环境变量:CLASSPATH
D:\Java\jdk1.6.0\lib.;
PATH
D:\Java\jdk1.6.0\bin;大家都做开发去了,很少再关注这个java环境变量的,如果有什么新的认识,请发表一下。欢迎大家深入讨论,说得精彩的,会得高分!

解决方案 »

  1.   

    C:\Program Files\Java\jdk1.6.0_04\lib.;这个不对吧?应当是C:\Program Files\Java\jdk1.6.0_04\lib;.或者.;C:\Program Files\Java\jdk1.6.0_04\lib我一直是用的.;%JAVA_HOME%\lib这种风格,JVM会遍历读取该目录下的所有jar文件,并添加到classpath,所以没有必要定义具体的jar文件。但是对于你自己目录中的jar文件,你要明确定义那个jar文件需要被设置到classpath。其实classpath在java应用中并不是一个简单的问题,尤其是涉及到分布式应用或classloader的问题。
      

  2.   


    Really now it's unnecessary to set the Class_Path so complicated. I think it becomes much more easier for the new Javaer to set the Class_Path.The article in the blog may show the exact steps you can do. But not all of them are unchangeable.
      

  3.   

    呵呵,貌似用1.6的jdk什么都不用设置吧?我下载了JDK装上之后不用设置任何变量就能用
      

  4.   

    我来解释一下。1 你看看实际运行的系统,有几个是JDK 6.0的
    2 我这样写,绝对不会错,而且我们应该这样写,否则如果你使用了第三方的jar,怎么办?
    我们使用最多的写法是这样的set CLASSPATH=%CLASSPATH%;c:/lib/spring.jar;c:/lib/hibernate.jar 等等我们应该养成良好的习惯,而不是因为某个新版本,而忘记了jar类库的正确使用方法。无它,我开发程序,从来不在环境变量里设置的,都是在我的批处理里面进行。
      

  5.   

    另,我记得只有6.0可以自动查找,之前的版本我不记得会自动找到那几个jar. 呵呵!
      

  6.   

    你用什么开发工具? 我用eclipse, netbeans  + tomcat, 从来不用设置这些麻烦的事情. 当然,如果你没用开发工具,而是直接用记事本等文本编辑工具来写java,然后自动运行javac来编译的话,就是手工设置classPath了,我刚学java的时候,就玩过这些事情. 如果你用开发工具,简单设置一下就可以了. 
      

  7.   


    这个东西,.;与;.没有什么严格的要求的,其实classpath根本不用设置也是可以的。
      

  8.   


    如果使用了第三方的jar,的确有问题了。
    说到实质问题了。
      

  9.   


    拜托,我说的C:\Program Files\Java\jdk1.6.0_04\lib.; 这个不对。另外,第三方的jar文件怎么会放到jdk的lib目录中,举一个例子吧?
      

  10.   

    .;其实等于;.;这样的。
    C:\Program Files\Java\jdk1.6.0_04\lib.; 即是C:\Program Files\Java\jdk1.6.0_04\lib;.; 
      

  11.   

    .;%JAVA_HOME%\lib
    %JAVA_HOME%\lib;.上面的那两个都是可以的%JAVA_HOME%\lib.;但上面的那个能对吗?
      

  12.   

    .;C:\Program Files\Java\jdk1.6.0_04\lib 写成.;C:\Program Files\Java\jdk1.6.0_04\lib;也是可以的
      

  13.   


    你想说得应当是.;C:\Program Files\Java\jdk1.6.0_04\lib 和 C:\Program Files\Java\jdk1.6.0_04\lib;.这个大部分情况下没有问题,但是有时候顺序也是比较重要的,classloader在载入class文件会按照你定义的顺序去查找,如果在前面的路径中找到了就不会在后面的路径中进行查找了。所以.;C:\Program Files\Java\jdk1.6.0_04\lib是更为常用的。
      

  14.   

    以前用2000的时候,按网上说的怎么都弄不好后来用了XP系统,按网上说的一次性就好了2000和XP的环境变量配置有区别吗,有人能告诉我吗
      

  15.   

    或者是,两次我用的JDK版本不一样??
      

  16.   

    JDK 5 的就不用设置 classpath 环境变量了,JDK 1.4 好像要的。一般设置一下 java_home 和 pathjava_home 为 JDK 的目录,而不是 JRE 目录
    path 使用 %java_home%/bin 就行了