2012-04-06 22 views
0

私は現在Eclipse上でJava用モバイルツール(MTJ)のJ2MEを使用しています。私のプログラムはRSAによってSMSメッセージを暗号化する必要があるので、私はbouncycastleライブラリを使用しようとします。私はbouncycatleバージョン1.47をダウンロードし、私のbuildpathに追加します。プロジェクトをビルドするときに問題は発生しません。しかし、私はエミュレータで実行しようとすると、私はこのエラーが表示されます:eclipseで出力jarファイルに外部jarファイルをパックする方法

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

これは一般的な問題、NoClassDefFoundです。これを解決するには、クラスパスにbouncycastleのクラスファイルを含める必要があります。しかし、ここで問題が来る、私はMTJが作成した瓶にバウンシークラスのファイルをパックできません。通常のプロジェクトでは、 "Order and Export"タブのチェックボックスをオンにして、出力されたjarファイルに "ticked"参照されたライブラリのすべてのクラスファイルをパックする必要があります。私はここでも同じことをしますが、パッケージを作成した後、私は新しいjarファイルをチェックし、バウンシーキャスルのクラスは内部にありません(WinRarを使ってチェックします)。私はいくつかしました Eclipse Indigo Release 2、build-id:20120216-1857 、MTJバージョン1.1.2。 私もPulsar 1.3.1をEclipseでパッケージを作成しようとしましたが、問題は解決しません。 提案はありますか?これはバグですか?

よろしくお願いいたします。

答えて

1

「注文と書き出し」が正しく動作していないと思われます。 ProjectAとProjectBとProjectAがProjectAに依存するプロジェクトが2つある場合、ProjectAにsome.jarが必要で、ProjectBにsome.jarが必要であることがわかっている場合、ProjectAのそのjarの "Order and Export" ProjectBの場合も同様です。

JARファイルの場合、別のJARファイルをJARファイルに追加することはできません(WARとEARで動作します)。あなたが必要なJARを解凍し、あなたのjarファイルにクラスファイルを追加し、jar -uはあなたを助けることができる(これは難しいようだが、あなたはアリ使用したり、一度それを設定しますMavenの場合)することができ、この

  1. を解決する方法を2つの可能性があります。
  2. 新しいアプリケーションを開発する場合、私はデバッガを使用傾けるため、Eclipseが自動的にすべてを展開していない場合は、あなたの答えをMANIFEST headers
+0

感謝を使用しようとすることができ、しかし、それは非常に不便です。さらに、このリンク[eclipseMe](http://eclipseme.org/docs/advJarFiles.html)では、_application jar_にクラスファイルを組み込んでjarを出力する方法を示しています。 – quangdp

関連する問題