0

アプリケーション用のjarファイルを作成しました。私のアプリケーションのクラスの 1 つは、BC jar の BouncyCastleProvider クラスを使用します。

アプリケーションjarが存在するのと同じ親フォルダーに「lib」フォルダーを1つ作成しました。

この新しい lib フォルダーを指すようにマシンの CLASSPATH を変更しました。しかし、アプリケーションを実行すると、classnotfound 例外が発生します。

しかし、この BC jar ファイルを jre/lib/ext にコピーすると、すべて正常に動作します。

libディレクトリからBC jarファイルにアクセスするために何をする必要があるか教えてもらえますか?

前もって感謝します、ジェニッシュ

4

1 に答える 1

0

JAR ファイルには、JAR のクラスパスを宣言するための MANIFEST.MF ファイルが設定されている必要があります。#

以下のSun チュートリアルから抜粋します。あなたの場合は、おそらく Class-Path ディレクティブが lib ディレクトリを指すようにするだけで済みます。

Class-Path: lib/BouncyCastle.jar

MyJar.jar で使用するために、MyUtils.jar 内のクラスをクラス パスにロードします。これら 2 つの 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 に答える