0

私は現在、Eclipse上のMobile Tools for Java(MTJ)でJ2meを使用しています。私のプログラムはRSAでSMSメッセージを暗号化する必要があるので、bouncycastleライブラリを使用しようとしています。bouncycatleバージョン1.47をダウンロードして、ビルドパスに追加します。プロジェクトの構築時に問題は発生しません。しかし、エミュレーターで実行しようとすると、次のエラーが発生します。

TRACE: <at java.lang.NoClassDefFoundError: org/bouncycastle/crypto/engines/RSAEngine>, startApp threw an Exception

これはよくある問題、NoClassDefFoundです。これを解決するには、クラスパスにbouncycastleのクラスファイルを含める必要があることを知っています。しかし、ここで問題が発生します。MTJが作成したjarにbouncycastleクラスファイルをパックできません。通常のプロジェクトの場合、「注文とエクスポート」タブのチェックボックスをオンにして、「チェックされた」参照ライブラリ内のすべてのクラスファイルを出力jarにパックするだけです。ここでも同じことをしますが、パッケージを作成した後、新しいjarファイルをチェックし、中にbouncycastleのクラスがありません(WinRarを使用してチェックします)。EclipseIndigoRelease 2、build-id:20120216-1857、 MTJバージョン1.1.2。また、Eclipse Pulsar 1.3.1でパッケージを作成しようとしましたが、それでも問題は解決しません。何か提案はありますか?これはバグですか?

よろしく。

4

1 に答える 1

1

「注文とエクスポート」が思うように機能していません。ProjectA と ProjectB の 2 つのプロジェクトがあり、ProjectA が ProjectA に依存している場合、ProjectA に some.jar が必要で、ProjectB にも some.jar が必要であることがわかった場合、ProjectA のその jar の「注文とエクスポート」により、「表示」されます。 ProjectBにも。

JAR ファイルの場合、JAR ファイルに別の jar を追加することはできません (WAR および EAR で機能します)。これを解決するには2つの可能性があります

  1. 必要な JAR を解凍し、クラス ファイルを jar に追加するjar -uことができます (これは難しいようですが、ant や maven を使用している場合は、一度構成します)
  2. MANIFEST ヘッダーの使用を試すことができます
于 2012-04-06T12:56:55.360 に答える