1

私は 3 つのクラスを持つプログラムを開発しており、いくつかの外部 jar アーカイブとクラスも含まれています。Eclipse で実行すると正常に動作しますが、他のプログラムで試す必要があるため、コンソールで実行する必要があります。すべてをフォルダーに保存します。このフォルダーには、別の 2 つのフォルダーが含まれています。このフォルダーとマニフェストを含む .jar アーカイブを作成しようとしました。ここで、メイン クラスがどこにあるかを伝えました。

実行すると「Exception in thread "main" java.lang.NoClassDefFoundError」が出て、メインのあるクラスが見つからないのですが、原因がわかりません。マニフェストで定義し、クラスパスを変更するためにいくつかの異なる方法を試しましたが、まだ機能しません。

解決策やアドバイスはありますか?

ありがとう!

4

6 に答える 6

1

NoClassDefFoundError は、ファイルがコンパイル時には存在していたが、実行時には見つからなかったことを意味します。コンパイルの問題がなかったため、jar は作成されましたが、実行時に java -jar jarfilename fullyqualifiedclassname などのコマンドを使用すると、この例外がスローされました。クラスパス変数を確認し、コマンド ウィンドウで正しいフォルダーの場所からコマンドを実行していることを確認します。このようなエラーについては、常に以下のリンクを参照していましたが、うまくいきました

http://javaeesupportpatterns.blogspot.in/2012/06/javalangnoclassdeffounderror-how-to.html

于 2013-07-26T11:51:10.693 に答える
1

JarSpliceを使用してみてください。メイン クラスを定義できます。

于 2013-07-26T11:20:28.060 に答える