1

したがって、次のような引数を使用して、コマンド ラインから jar を起動しようとしています。

java -cp "path/test.jar;path/lib.jar" -Djava.library.path="path/another_lib.jar" net.test.Test

(net.test.Testはメインクラスです)これにより、NoClassDefFoundError例外(net/test/Testの場合)が発生します。

これは他の人にとってはうまくいくように見えるので、なぜうまくいかないのかわかりません。

4

1 に答える 1

3

最初に-Djava.library.path=/something、JVM にネイティブ ライブラリ (つまり DLL) を見つける場所を伝えます。ファイルの検索とは関係がないjarため、そのフラグを使用してjarファイルを検索すると、すぐに問題が発生します。

それ以外の場合は、これで問題ありません。これらのパスがすべて正しいこと、および を含む jar ファイルnet.test.Testに問題のクラスが実際に含まれていること、および jar ファイル内のTest.classファイルがtestディレクトリ内のディレクトリにあることを確認する必要がありますnet

Rup がコメントで指摘しているように、現在のディレクトリに取得する必要があるクラスがある場合は、現在のディレクトリである "." のエントリを-cp引数に追加する必要があります。

于 2012-06-11T00:06:54.127 に答える