设置类路径结构可通过对可设置类路径结构 JDK 工具使用 -classpath 选项(首选方法)或设置 CLASSPATH 设置环境变量的类路径。 C:> jdkTool -classpath path1;path2...C:> set CLASSPATH=path1;path2...每个 path 在文件名或目录的结尾,文件名或目录取决于将类路径设置为什么: 对于包含 .class 文件的 .zip 或 .jar 文件,路径以 .zip 或 .jar 文件名结尾。 未命名包中的 .class 包含路径的文件 .class 文件目录的结尾。 未命名包中的 .class 包含路径的文件 .class 文件目录的结尾。 对已命名包中的 .class 包含路径的文件“root“包(完整包名中的第一个包)目录结束。 多个项目用分号分隔。使用 set 在命令时,需要省略等号两侧的空间(=)。其中 jdkTool 可以为 java、javac、javadoc,等等。详见详细列表 JDK 开发工具。
说明类路径告知 Java 在哪里可以找到第三方和自定义的应用程序 -- 即不是 Java 扩展或 Java 部分平台类别。在 JDK 1.2 中,JVM 和其他 JDK 该工具通过依次搜索平台库、库扩展和类路径来搜索类别(详情请参见如何搜索类别)。 扩展机制将充分利用大多数应用类库。因此,只有想加载某个类库 (a) 不在当前目录或分支包中 且 (b) 只有在扩展机制指定的位置之前,才能设置类路径。 假如用户是旧版本 JDK 升级后,启动设置可能不再需要 CLASSPATH 设置。此时,应删除任何非应用程序的特定设置。有些使用 Java 可以修改虚拟机的第三方应用程序 CLASSPATH 包括它们使用的类库中的环境变量。可以保留此设置。 可通过调用 JVM 或其他 JDK 工具时使用 Java 工具的 -classpath 选项变化类路径(例如: java -classpath ...)。这是改变类路径的首选。也可以通过使用 CLASSPATH 环境变量变化路径。 注意:JDK 1.2 目前的目录是缺省路径。
设置 CLASSPATH 变量或使用 -classpath 命令行开关将覆盖缺省值。因此,如果您想在搜索路径中包含当前目录,则必须包含在新设置中.”。可存储在目录(文件夹)或归档文件(例如)中 classes.zip 或 classes.jar)中。关于归档文件的详细信息和类别路径的工作原理,请参阅本文档的最终理解类别路径和包名。 重要说明:JDK 旧版本也包括在缺省路径中
使用 Java 工具的 -classpath Java的选项 工具 java、jdb、javac 和 javah 具有 -classpath 在工具运行过程中,选项将取代缺失路径或由 CLASSPATH 环境变量指定的类路径。这是改变类路径设置的推荐方法,因为每个应用程序都有其所需的类路径而不干扰其他应用程序。 运行时工具 java 和 jdb 还具有 -cp 选项。该选项是 -classpath 的缩写。 对于非常特殊的情况,java 和 javac 它们都有开关,可以改变它们使用的路径来找到自己的类库。然而,绝大多数用户从未使用过这些开关。使用 CLASSPATH 正如前一节所述,普通用户将希望使用环境变量 -classpath 命令行选项。本节将介绍如何设置 CLASSPATH 环境变量或清除以前安装留下的设置。 设置 CLASSPATH DOS 在提示符下,可用 set 命令修改 CLASSPATH 环境变量。其格式为: set CLASSPATH=path1;path2 ...例如,路径应以指定驱动器的字母开始, C:\..。这样,当偶然切换到不同的驱动器时,仍然可以找到类别(例如,如果路径项以 \... 开头,目前位于驱动器 D: 上,所需类别将在 D: 而不是 C: 在驱动器上找)。 清除 如果CLASSPATH如果 CLASSPATH 如果环境变量设置为不正确的值,或者启动文件或脚本程序设置了不正确的路径,则可以通过使用下列命令来清除 CLASSPATH: C:> set CLASSPATH=该命令仅清除当前对话 CLASSPATH。确保在未来的会话中有正确的对话 CLASSPATH 设置时,应删除或修改启动设置。 如果系统启动时设置了更改启动设置 CLASSPATH 根据所使用的操作系统,找到变量的位置: 操作系统 方法 Windows 98 和 Windows 95 检查 autoexec.bat 文件中的 set 命令。
Windows NT 启动“控制面板”,选择“系统”,单击“环境”选项卡,检查“用户变量”部分 CLASSPATH 变量。 理解路径和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 在目录中搜索。
![](/images/780-200-2.jpg)