7

ソフトウェアを Eclipse で実行しています。昨日はすべて順調でした。コードを変更していませんが、今日、再度実行しようとすると、次のエラー メッセージが表示されます。

Exception in thread "main" java.lang.NoClassDefFoundError: coloredtrails/CTListener
    at test.DemoPlayer1.createAndShowGUI(DemoPlayer1.java:23)
    at test.DemoPlayer1.main(DemoPlayer1.java:39)
Caused by: java.lang.ClassNotFoundException: coloredtrails.CTListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

クラスが表示されないのはなぜですか?その理由は何でしょうか?どうすれば問題を解決できますか?

4

2 に答える 2

10

NoClassDefFoundErrorほぼ)常にクラスパスが間違っていることを意味します。coloredtrailsクラスパスにパッケージのベースディレクトリが含まれていることを確認してください。(もちろん、ファイルcoloredtrails\CTListener.classが実際に存在することも確認してください)。

コマンドラインから実行する場合:

クラスパスを設定するには、CLASSPATH環境変数を設定するか、プログラムの実行時にコマンドラインで-cpまたはオプションを指定してクラスパスを指定します。-classpath例えば:

java -cp C:\MyProject\classes coloredtrails.CTListener

編集-スタックトレースを見てURLClassLoader、そこを見ると、Javaアプレットを実行しようとしていると思います。アプレットが必要とするすべてのクラスを見つけることができるようにアプレットを正しく展開する方法については、このチュートリアル:アプレットの展開を参照してください。

于 2011-05-25T12:19:28.667 に答える
6

ときどき、私の Eclipse (MacOSX の Indigo) がそれを行います。特に、ファイルシステムのプロジェクト構造に直接変更 (ファイルの削除、移動) を行う場合です。

基本的に、Eclipse はソース フォルダーを見つけることができないため、ソースをコンパイルせずにとにかく実行しようとします (これはすべて、警告や問題への参照なしで行われます)。

これを修正するには、ソース フォルダーをビルド パスから削除します (=パッケージ エクスプローラーでプロジェクトの下の src フォルダーを右クリックし、[ビルド パス] -> [ビルド パスから削除] を選択します。次に、もう一度追加します (=パッケージ エクスプローラーでプロジェクトの下のフォルダーを右クリックし、[ビルド パスに追加] を選択します。これにより、src フォルダーが再びコンパイラーに「表示」され、問題が修正されます。

于 2012-09-11T15:59:15.097 に答える