0

我为我的应用程序制作了 jar 文件。我的应用程序类之一使用 BC jar 的 BouncyCastleProvider 类。

我在我的应用程序 jar 所在的同一个父文件夹中创建了一个文件夹“lib”。

我已将我的机器 CLASSPATH 更改为指向这个新的 lib 文件夹。但是当我运行我的应用程序时,它给了我 classnotfound 异常。

但是,如果我将此 BC jar 文件复制到我的 jre/lib/ext 中,那么一切正常。

谁能告诉我从我的 lib 目录访问 BC jar 文件需要做什么?

提前致谢, 杰尼什

4

1 回答 1

0

您的 JAR 文件必须设置其 MANIFEST.MF 文件以声明 JAR 的类路径。#

从下面的Sun 教程中提取,在您的情况下,您只需要使 Class-Path 指令指向您的 lib 目录,大概

Class-Path: lib/BouncyCastle.jar

我们希望将 MyUtils.jar 中的类加载到类路径中,以便在 MyJar.jar 中使用。这两个 JAR 文件位于同一目录中。

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

Class-Path: MyUtils.jar

Warning : The text file must end with a new line or carriage return.

如果最后一行没有以新行或回车结束,则不会正确解析。

然后我们通过输入以下命令创建一个名为 MyJar.jar 的 JAR 文件:

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

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

Manifest-Version: 1.0
Class-Path: MyUtils.jar
Created-By: 1.6.0 (Sun Microsystems Inc.)

当您运行 MyJar.jar 时,MyUtils.jar 中的类现在被加载到类路径中。

于 2009-02-24T21:05:05.117 回答