32

私のEclipse(Indigo)は問題なく動作していました。簡単なクラスを作成しましたHellocontフォルダ内のパッケージに配置されますch13。ただし、Eclipse から実行しようとすると、Java Virtual Machine Launcher から情報を取得します。

Could not find the main class: cont.Hello.  

このパッケージから他のクラスを実行しようとしましたが、問題なく実行されました (つまり、以前に存在していたクラスです)。ただし、このパッケージで作成する新しいクラスには、これらの問題があります。実際、私が Eclipse で作成した新しいクラスはすべて、この問題に遭遇します。コマンドラインからどのように動作するかを確認することにしました。問題がまだ存在しているようです-同じエラーが発生します。パスを確認したところ、C:\Program Files\Java\jdk1.7.0_02\bin正しいです (他のクラスは Eclipse から正常に実行されていることに注意してください)。で実行しようとしましたが、java -cp . Helloで始まるいくつかのエラーが生成されましたjava.lang.NoClassDefFoundError: Hello (wrong name: cont/Hello)。コード自体は単純です:

package cont;

public class Hello {
    public static void main(String[] args){
        System.out.println("Hello");
    }

}

クラスが引き続き Eclipse で実行されるように修正するにはどうすればよいですか?

4

20 に答える 20

35

.metadata破損しています。

手順:

警告: .metadata を削除すると、すべての Eclipse 構成、プラグイン、プロジェクト セットアップが削除されます。これを試みる前にバックアップを作成してください。

  1. Eclipse を停止し、ワークスペースで .metadata を削除して、Eclipse を再起動します。

  2. プロジェクトのインポート

  3. 再実行

于 2012-09-13T05:13:09.500 に答える
20
  • 実行構成の削除

    eclipseの一部のプレリリース バージョンで同様の問題が発生することがあります。エラーを修正するために、実行構成を削除します。メニューRunRun Configurations ...でそれを見つけることができます

    Alt次に、アプリを++で起動し、次にShift. これが機能しない場合は、+ .XJCtrlF11

  • .metadataディレクトリの削除

    別の方法として、現在のワークスペースの構成設定が破損している可能性があります。これらの設定は、.metadata現在のワークスペースのディレクトリにあります1。その場合、ディレクトリを削除する以外に選択肢はありません。

    1. 日食を閉じます。
    2. ディレクトリを削除し.metadataます。
    3. 日食を開始します。
    4. プロジェクトをインポートします。
    5. プロジェクトを再度実行します。

ノート

  1. そのディレクトリは、[ファイル] > [ワークスペースの切り替え] > [その他... ] で確認できます。
于 2012-04-27T20:37:41.887 に答える
2

クラスに main 関数が必要です。お気に入り

public class MyDataBase {

    public static void main(String args[]) {
    
    }
}
于 2014-09-09T15:35:39.820 に答える
1

Mavenプロジェクトでも同じ問題がありました。プロジェクト内に src/test/java フォルダーを作成すると、エラーはなくなりました。

于 2015-12-07T16:46:45.750 に答える
0

この問題を解決する方法は、プロジェクトの名前を変更することであることがわかりました。奇妙な文字 (私の場合は :) を含む名前を付けると、クラスを見つけるのに苦労します。このルールが数値に当てはまるかどうかはわかりませんが、プロジェクトの名前を変更するか、新しいプロジェクトを作成してファイルをコピーしてみてください。数字や特殊文字を含まない名前を付けてください。

于 2015-09-05T08:10:09.913 に答える
0

別のヒント: 静的フィールドを間違った順序で初期化しました。驚くべきことに、問題 (NullPointerException?) は発生しませんでした。代わりに、Eclipse は OP が投稿したメッセージとまったく同じように不平を言いました。静的な初期化順序を修正すると、クラスが実行可能になりました。例:

private static ScriptEngineManager factory = null;
private static ScriptEngine engine = null;
static {
    engine = factory.getEngineByName("JavaScript");
    // factory is supposed to initialize FIRST
    factory = new ScriptEngineManager();
}
于 2013-05-13T09:38:37.697 に答える
0

私は非常に多くのブログを読み、非常に多くのトリックを試しましたが、問題は解決しませんでした. コードは実行できましたが、jar ファイルを生成できませんでした。:(悲しい..

しかし、私は非常にばかげているかもしれない何かを試しましたが、私にとってはうまくいき、トレースでEclipseを購入しました. 私がしたことは..クラスからメインメソッドを削除しただけです。保存しました。メインクラスを元に戻すために元に戻しました。多田...問題は解決しました... 1つだけ言いたいのは、Eclipseを「自動ビルド」モードにしてください。

于 2020-10-09T10:05:22.143 に答える
-1

私は同じ問題を抱えていました。次のコマンドmavenで解決しました:

mvn eclipse:eclipse -Dwtpversion=2.0

PS: 私のプロジェクトは WTP プラグインです

于 2014-08-26T18:54:36.073 に答える
-1

私は同じ問題を抱えていました、これが私の解決策です:

  1. プロジェクトのbinフォルダーを手動で削除しました
  2. 次に、プロジェクト全体を再コンパイルし、すべての .class ファイルを含む新しいビンを作成するプロジェクトを更新しました

Clean(project->clean) を実行したときに .class ファイルが削除されなかったため、これを行いました。上記の解決策は私にとってはうまくいき、他の人に役立つことを願っています。

于 2014-04-26T20:20:43.770 に答える
-1

事前定義された実行構成を使用している場合は、クラスパスに移動し、「デフォルト エントリの復元」を試してください。これにより、その構成のクラスパスが再構成されます。

于 2015-04-09T14:58:53.040 に答える
-1

ファイルを cont というサブディレクトリに移動します

于 2012-04-27T19:43:25.520 に答える
-1

私はこれを行うことで私の問題を解決しました:

  • メイン全体 (CTRL X) をクラスから切り離します (ほんの数秒間)。
  • クラスファイルを保存します (CTRL S)
  • メインバックを正確に同じ場所に貼り付けます (CTRL V)

奇妙なことに、その後再び機能し始めました。

于 2014-02-25T02:34:43.557 に答える
-1

lib ディレクトリには、たとえば 2 つの groovy-xxx-all.jar ファイルが存在する可能性があります。これにより、アプリが実行されていません

于 2014-03-07T14:33:28.810 に答える
-1

Eclipse の標準的なトラブルシューティング手順には、ある時点でプロジェクトを削除して再インポートすることが含まれている必要があります。

于 2013-02-28T17:14:41.583 に答える
-1

これは最終的に私にとってはうまくいきました:RUN -> RUN CONFIGURATIONS -> DELETE THE RUN CONFIGURATION CLOSE ECLIPSE REOPEN ECLIPSE CREATE RUN CONFIGURATION AGAIN。

タダァァァ!! できます

于 2017-07-18T03:23:50.007 に答える