java中package的使用与classpath的设置

来源:互联网 发布:淘宝联盟不能用红包 编辑:程序博客网 时间:2024/04/30 04:14

今天读了JAVA2核心技术第1卷:基础知识中的第4章,对其中的package的使用有些感悟与理解。

写了两个类PackageTest、Employee。PackageTest在默认包,Employee在com.horstmann.corejava包中。PackageTest中引用Employee类。

基路径F:/JavaProgram/packagetest。

F:/

     JavaProgram/

                          packagetest/

                                             com/

                                                    horstmann/

                                                                      corejava/

                                                                                     Employee.java

                                                                                     Employee.class

                                              PackageTest.java

以上是目录路径(虽然难看,能看懂就行了)

在命令行中敲入:

F:/JavaProgram/packagetest>javac com/horstmann/corejava/Employee.java

F:/JavaProgram/packagetest>javac packagetest.java

F:/JavaProgram/packagetest>java PackageTest

运行成功了。

关于classpath的讲解:

类路径所列出的目录和归档文件是搜寻类的起始点,下面看一个类路径示例:

/home/user/classdir;.;/home/user/archives/archive.jar

假设解释器要搜寻com.horstmann.corejava.Employee类文件。他首先要查看存储在jre/lib和jre/lib/ext目录下的归档文件中所存放的系统类文件。显然,在那里找不到相应的类文件,然后在查看classpath。于是查看:

/home/user/classdir/com/horstmann/corejava/Employee.class(带有package com.horstmann.corejava)

/com/horstmann/corejava/Employee.class

/home/user/archives/archive.jar中的com/horstmann/corejava/Employee.class

这就表示我们在保存java文件时,要将编译的class文件放入与包名对应的目录中。因为编译器是根据包名到相应的路径中查找.class文件。

当然改类必须是在这个包内,否则即使是取Employee.class名,也不会编译通过。