根据CLASSPATH环境变量定位类:
那么CLASSPATH环境变量的作用是什么呢?当使用“java JAVA类名”命令来运行Java程序时,JRE到哪里去搜索Java类呢?可能有读者会回答,
在当前路径下搜索呀。这个回答很聪明,但是1.4以前的版本的JDK都没有设计这个功能,这意味着即使当前路径已经包含了HelloWorld.class
,并在当前路径下执行“java HelloWorld”,系统将一样提示找不到HelloWorld类。
如果是1.4以前的版本的JDK,则需要在CLASSPATH环境变量中添加一点(.),用以告诉JRE需要在当前路径下搜索Java类,
除此之外,编译和运行Java程序还需要JDK和lib路径下dt.jar和tool.jar文件中java类,因此还需要把这两个文件添加到CLASSPATH
环境变量中.
因此,如果使用1.4以前的版本JDK来编译和运行java程序,常常需要设置CLASSPATH环境变量的值为:.;%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar(其中JAVA_HOME环境变量指向JDK的安装目录)。
后来的JRE会自动搜索当前路径下的类文件,而且使用Java的编译和运行工具时,系统会自动加载dt.jar和tools.jar文件中的Java类
,因此不再需要设置CLASSPATH环境变量。。。。。。。
参考疯狂java 1.5.4中page14页关于CLASSPATH的讲解。