Java 类被组织成包,而这些包被映射到文件系统中的目录。但是与文件系统不同的是,无论何时指定包名,都应指定
完整包名 -- 永远不要仅指定它的一部分。例如,
java.awt.Button 的包名
总是应指定为
java.awt。
例如,假定想要 Java 运行环境在包 utility.myapp 中查找名为 Cool.class 的类。如果该目录的路径为 C:/java/MyClasses/utility/myapp,则应该将类路径设置成包含 C:/java/MyClasses。
要运行该应用程序,可使用下述 JVM 命令:
C:>? java -classpath C:/java/MyClasses utility.myapp.Cool
当该应用程序运行时,JVM 使用类路径设置查找在
utility.myapp 包中定义的任何其他类。
注意:应在命令中指定完整包名。例如,设置类路径包含 C:/java/MyClasses/utility 并使用命令 java myapp.Cool 是不可能的,因为这找不到该类。
(您可能想知道用什么定义类的包名。答案是:包名是类的一部分,并且不能修改,除非重新编译该类。)
注意:包规范机制一个有趣的结果是,属于相同包的多个文件实际上可存在于不同的目录中。对于每个类,包名都是相同的,但是每个文件的路径可从类路径中的不同目录开始。
文件夹和归档文件
当类存储在目录(文件夹)中时,例如
c:/java/MyClasses/utility/myapp,则类路径项指向包含包名第一个元素的目录(在这里为
C:/java/MyClasses,因为包名是
utility.myapp)。
但是当类存储在归档文件(.zip 或 .jar 文件)中时,类路径项则是该 .zip 或 .jar 文件的路径。例如,要使用位于 .jar 文件中的类库,则命令应该类似下述形式:
?? java -classpath C:/java/MyClasses/myclasses.jar utility.myapp.Cool
多重指定
要在目录
C:/java/MyClasses 和
C:/java/OtherClasses 中查找类文件,则可将类路径设置为:
?? java -classpath C:/java/MyClasses;C:/java/OtherClasses ...
注意两个路径之间用分号分隔。
指定次序
指定多个类路径项的次序是相当重要的。Java 解释器将按照目录在类路径变量中的次序在各个目录中查找类。在上例中,Java 解释器首先在目录
C:/java/MyClasses 中查找需要的类。只有当它在该目录中没有找到该类时,解释器才能到
C:/java/OtherClasses 目录中查找。
?以上需要注意的是:我是在j2se1.5的版本上设置的 系统是XP.Pro
???? 1.在 “我的电脑”下设置成功CLASSPATH后 就不用再在每次运行javac和java命令提示符的时候设置CLASSPATH?? 除非包路径有所改变
??? 2.编译成功以后 可以在任何地方执行该.class文件
??? 3.当运行java命令提示符的时候? 务必注明该文件的相对路径
??? 4.在设置 文件所在包的包名的时候不能跟 java定义的包名字一样 诸如java,javax之类的