2011-01-07 6 views
12

これは私が恐れる非常に厄介な質問の1つです。スレッド "main"の例外java.lang.NoClassDefFoundError:DiServer <間違った名前:ds/DiServer>

package ds; 
    public class DiServer { 
public static void main(String[] args) { 
    int foo = 0; 
    int bar = 0; 
    /*bla*/ 
    } 
    } 

シンプル右:

は、私は、Eclipseでプログラムを持っていますか?これは、Eclipseで実行すると完全に正常に動作します。

これをコマンドラインから実行します。私はbinフォルダをdsフォルダにコピーし、DiServer.classはdsに、.classpathは

私はC:\ My Documents \ DiTestという独立したフォルダに入れて、Cに行った。 :\マイドキュメント\ DiTest \ DS \とjava DiServer

私はJavaの-classpathを試してみましたException in thread "main" java.lang.NoClassDefFoundError: DiServer <wrong name:ds/DiServer> ... Could not find the main class: DiServer. Program will exit.

で取得エラー型付けされました。 DiServer、java -classpath ../ .. DiServer、.classpathをdsフォルダに移動していますが、これを回すことはできません。 99%がクラスパスの問題だと確信していますが、それを修正する方法を考えることはできません。

いつものように助けてくれてありがとうございました。そして、丁寧なパイントの提供はいつも立っています。事前に非常に

おかげで、

M

答えて

24

あなたクラスの完全な名前がds.DiServer、ないDiServerです。 C:\My Documents\DiTestから:

java -cp . ds.DiServer 

そしてほら

+0

私はもうこれをテストするためにオフィスにいませんが、私はあなたの言葉を受け取り、月曜日の朝に見つけます!私は最高のものとして両方を選ぶことができれば素晴らしい答えのために両方をありがとうが、問題の最も良い説明を付けて、これを1つだけ与えることができるので、これはこれです。どうもありがとう、あなたのパイントはいつでも請求することができます:) – Myn

+0

'java -cp .'は必須ですか? –

+0

はい、 'CLASSPATH'環境変数に' .'を含めない限りです。 – gabuzo

11

後藤C:\My Documents\DiTest\ds\

javac DiServer.java 

後藤C:\My Documents\DiTest\

java ds.DiServer 

関連項目

+0

eclipseで実行している場合は、最初の手順は不要です。出力(bin)ディレクトリのルートを見つけてそこからjava ds.DiServerを実行してください。 – KevinDTimm

関連する問題