Java 类,包和目录
每个 Java™ 类都是包的一部分。 Java 源文件中的第一个语句指示哪个类在什么包中。 如果源文件不包含包语句,那么该类是未命名的缺省包的一部分。
程序包名与类所在的目录结构相关。 集成文件系统支持分层文件结构中的 Java 类,这类似于您在大多数 PC 和 UNIX 系统上找到的类。 必须将 Java 类存储在具有与该类的包名相匹配的相对目录路径的目录中。 例如,请考虑以下 Java 类:
package classes.geometry;
import java.awt.Dimension;
public class Shape {
Dimension metrics;
// The implementation for the Shape class would be coded here ...
}
先前代码中的包语句指示 Shape 类是 classes.geometry 包的一部分。 对于 Java 运行时,要查找 Shape 类,请将 Shape 类存储在相对目录结构类/几何图形中。
注: 软件包名称对应于类所在的相对目录名称。 Java 虚拟机类装入器通过将相对路径名附加到类路径中指定的每个目录来查找类。 Java 虚拟机类装入器还可以通过搜索您在类路径中指定的 ZIP 文件或 JAR 文件来查找类。
例如,当您将 "形状" 类存储在 "根" (/) 文件系统中的/Product/classes/几何图形目录中时,需要在类路径中指定 /Product。
图 1: 不同包中同名 Java 类的示例目录结构

注: 目录结构中可以存在多个版本的 Shape 类。 要使用 Beta 版本的 Shape 类,请将 /Beta/myclasses 放在类路径中包含 Shape 类的任何其他目录或 ZIP 文件之前。
Java 编译器在编译 Java 源代码时使用 Java 类路径,包名和目录结构来查找包和类。 有关更多信息,请参阅 Java 类路径。