将类添加到 JAR 文件的 Classpath 中

您可能需要从 JAR 文件中引用其他 JAR 文件中的类。

例如,在典型情况下,ServletsBinding 在一个 JAR 文件中,其清单引用了一个不同的 JAR 文件(或几个不同的 JAR 文件),该文件充当该 Servlets 的用途。

您可以指定要包含在 applet 或应用程序清单文件中Class\-PathHeaders 字段中的类。 Class\-PathHeaders 采用以下形式:

Class-Path: jar1-name jar2-name directory-name/jar3-name

通过使用清单中的Class\-PathHeaders,可以避免在调用 Java 运行应用程序时必须指定 Long\-classpath标志。

Note:

Class\-PathHeaders 指向本地网络上的类或 JAR 文件,而不是 JAR 文件中的 JAR 文件或可通过 Internet 协议访问的类。要将 JAR 文件中的 JAR 文件中的类加载到 Classpath 中,必须编写自定义代码以加载这些类。例如,如果MyJar\.jar包含另一个名为MyUtils\.jar的 JAR 文件,则不能使用MyJar\.jar's清单中的Class\-PathHeaders 将MyUtils\.jar中的类加载到 Classpath 中。

An Example

我们希望将MyUtils\.jar中的类加载到要在MyJar\.jar中使用的 Classpath。这两个 JAR 文件位于同一目录中。

我们首先创建一个名为Manifest\.txt的文本文件,其内容如下:

Class-Path: MyUtils.jar

Warning:

文本文件必须以换行符或回车符结尾。如果最后一行未以新行或回车结尾,则将无法正确解析。

然后,通过 Importing 以下命令,创建一个名为MyJar\.jar的 JAR 文件:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

这将创建带有清单的 JAR 文件,其中包含以下内容:

Manifest-Version: 1.0
Class-Path: MyUtils.jar
Created-By: 1.7.0_06 (Oracle Corporation)

现在,当您运行MyJar\.jar时,MyUtils\.jar中的类将加载到 Classpath 中。