我的环境变量根本就没有设置CLASSPATH,可是我仍能够编译Java文件,并且还能够执行,这是怎么回事,几乎每本Java入门级书籍都介绍要设置CLASSPATH,但我这种情况把我搞晕了,请大家指点。另外我如果设置  CLASSPATH=%CLASSPATH%;D:\JavaSource  是不是在任何目录下就可以执行JavaSource中的Java源程序了?

解决方案 »

  1.   

    恩,差不多,但是你路径要设置对,最好还是设置一下JDK的环境,随着jdk的版本不段更新,给用户带来更多的体验。。给学习java的入学者省了很多麻烦。
      

  2.   

    你试试运行一个带opensource的lib然后不用指定classpath的example给我看看?
      

  3.   

    你用的是不是jdk1.6呢?据说jdk1.6不用设置classpath就可以编译文件。不过我猜测这不过是classpath赋了一个初值而已,如classpath=.;%JAVA_HOME%\lib因为从java.exe很容易找到java_home变量的值是多少,当前目录更简单就是一个"."。不过如果你依赖于一个普通的jar文件时,还是需要指定classpath的。
      

  4.   

    JDK 5 及以上的版本不需要设置 Java 编译时的 classpath 了。
    就在 path 里设一下 JDK 的 bin 目录就可以了。
      

  5.   

    设置好了变量,在DOC下可以运行JAVA程序
      

  6.   

    的确是的,但是如果在ClASSPATH中有一个和JavaSource目录中同名(包名和类名都相同)的一个类时,
    java会执行先找到的那个,容易产生错误
      

  7.   

    你是不是使用的什么工具已经自己设置好了?比如netbeans就不用设置classpath
      

  8.   

    我用的是Jdk1.5,如下图片,这是咋回事
      

  9.   

      lz虽然本意说明白了,但是标题--个人感觉不准确.(以下观点,依据的java环境是jdk1.5版本及其以前)
    设置classpath跟编译无关.(java程序编译,是设置path).classpath是和程序运行有关.jvm运行java程序有两个规则:1>classpath 告诉java解释器(jvm):(jvm)通过这个classpath路径去运行编译好的程序.2>若classpath没有设置或通过classpath没有找到你要运行程序,那么它就会沿"当前运行的路径"找程序.所谓当前运行路径:假设你编译好的文件JavaTest.class放置在D:\JavaSource .那么当你运行命令像这样时D:\JavaSource  java JavaTest (基于运行第2>规则)就能运行.这就是lz为什么"环境变量根本就没有设置CLASSPATH,可是我仍能够编译Java文件,并且还能够执行"的原因如果理解"运行java程序两个规则"那么lz最后一个疑问就简单了:只要运行的java程序(如j1.class;j2.class .......)都放在D:\JavaSource目录下.那么"在任何目录下都可以执行JavaSource中的Java源程序"(基于运行规则1>)