2012-03-04 7 views
0

私はEclipseにインポートした.jarファイルを使用していますが、Eclipseを使用してアプリケーションを実行するとうまくいきます。.jarファイルはEclipseで使用する場合のみ動作します

しかし、コマンドラインからコマンドを実行すると、java ClassNameというメッセージが表示され、NoClassDefFoundErrorというメッセージが表示されます。

.jarファイルは、実行する必要があるメインクラスと同じディレクトリにあります。

は、私は、端末

java -classpath pack.jar ClassName 

にクラスパスコマンドを使用してみましたが、私は同じエラーを得たが、それはメインスレッドで、この時間だった

Exception in thread "main" java.lang.NoClassDefFoundError 

なぜEclipseでの私のプログラムの仕事が、それ自体ではありませんか?

+0

'-classpath'のパスは正しいですか? –

+1

jarと独自のコードの両方をクラスパスに含める必要があります。 * what *クラスが見つからない場合は、*あなたのコードであるかライブラリコードであるかを知るために* what *クラスをインクルードすると便利です。 –

+0

さて、あなたが今何を意味しているのかを見ると、以下のコードが働いています。 – ppepper

答えて

4

私はあなたが使用する必要がありますね:java -classpath .:pack.jar ClassNameと思います。

+0

これは、ありがとうございます。私はそれを見たことがない:前に、その目的は何ですか?私は何時間もこれを修正しようとしていましたが、私はどこにも見られませんでした。 – ppepper

+0

@ppepper:ドットは現在のディレクトリ(メインクラスがある場所)を意味し、コロンはクラスパス内のエントリを区切ります。 '。:pack.jar'は '現在のディレクトリとpack.jarをクラスパスに入れます。' –

0

NoClassDefFoundErrorコンパイル時にクラスが存在し、実行時にJavaクラスパスでは使用できない場合に発生します。

その

が以前そうする手法を説明した場合、または使用するので、uは.jarファイルのwhoeパスを含める必要があり、それらを一緒に混同してはならないClassNotFoundException NUと同等であることに似ても似つきませんjava -classpath ..のものを使用せずに頻繁に使用したいJARファイルでした。ファイルをOSクラスのパスディレクトリにインポートしてみてください。

関連する問題