将类添加到 JAR 文件的 Classpath 中
您可能需要从 JAR 文件中引用其他 JAR 文件中的类。
例如,在典型情况下,ServletsBinding 在一个 JAR 文件中,其清单引用了一个不同的 JAR 文件(或几个不同的 JAR 文件),该文件充当该 Servlets 的用途。
您可以指定要包含在 applet 或应用程序清单文件中Class\-Path
Headers 字段中的类。 Class\-Path
Headers 采用以下形式:
Class-Path: jar1-name jar2-name directory-name/jar3-name
通过使用清单中的Class\-Path
Headers,可以避免在调用 Java 运行应用程序时必须指定 Long\-classpath
标志。
Note:
Class\-Path
Headers 指向本地网络上的类或 JAR 文件,而不是 JAR 文件中的 JAR 文件或可通过 Internet 协议访问的类。要将 JAR 文件中的 JAR 文件中的类加载到 Classpath 中,必须编写自定义代码以加载这些类。例如,如果MyJar\.jar
包含另一个名为MyUtils\.jar
的 JAR 文件,则不能使用MyJar\.jar's
清单中的Class\-Path
Headers 将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 中。