CLASSPATH杂记

CLASSPATH杂记


本来java虚拟机是这么运行的
D:\java -classpath D:\hibernate-3.0\eg org.hibernate.auction.Main

这个命令行将告诉java虚拟机的类装载器从D:\hibernate-3.0\eg\org\hibernate\auction处装载Main.class。
如果省略"-classpath D:\hibernate-3.0\eg",即D:\java org.hibernate.auction.Main 则类装载器将会从系统环境变量CLASSPATH指定的位置寻找符合条件的Main.class。


如果CLASSPATH为.;D:\jdk150\lib\tools.jar;D:\jdk150\jre\lib\rt.jar;D:\hibernate-3.0\eg
则类装载器先查找当前运行目录(.表示当前目录),此处为D:\,如果D:\下面有D:\org\hibernate\auction\Main.class,则装载这个文件。如果没有,继续在D:\jdk150\lib\tools.jar文件中寻找是否有路径为org\hibernate\auction\Main.class的文件,如果没有则寻找D:\hibernate-3.0\eg\org\hibernate\auction\Main.class。如果在这些路径中都没找到,就会提示一个鸟错误。注意D:\hibernate-3.0\eg只表示将在此路径下寻找D:\hibernate-3.0\eg\org\hibernate\auction\Main.class文件,不会在此路径下的.jar文件中继续寻找。


据说很多开发环境往往不去读系统路径,直接就java -classpath .....,这也就是在外面运行的东东挺溜的进了开发环境就死菜的原因喽。

你可能感兴趣的:(CLASSPATH杂记)