0

私の DrJava は正常に動作していましたが、何かを実行するたびに次のエラーが発生し続けます。

Static Error: This class does not have a static void main method accepting String[].

したがって、正常にコンパイルされますが、エラーが発生します。これは、私がテストしたものすべてに public static void main(String[] args) が実際に含まれている場合でも発生します。クラスパス/リソース タイプのエラーのようです。ヒントをいただければ幸いです

編集:私のクラス

public class Test{


public static void main(String[] args){

    System.out.println(" hashmap ");

}

}
4

8 に答える 8

5

コードに問題はないので、問題は環境にあるに違いありません。

  • 実際にそのクラスを実行していることを確認してください。実行されるクラスが指定されている場所を見つけて、それが正しいことを確認します
  • クラスをコンパイルしていることを確認します。たぶん、あなたが見ているコードはコンパイルされておらず、コード化する前にコンパイルされた古いバージョンを実行しようとしています.main()
  • クラスパスを確認してください。コンパイルされたクラスは java コマンドのクラスパスでアクセス可能ですか
于 2013-07-28T05:11:48.740 に答える
1
  • プログラムが正しくコンパイルされたかどうかを確認します。
  • .class ファイルの time-stamo を確認します。
  • クラスファイルが生成されるフォルダ/ディレクトリの権限を確認してください。
  • DrJAVA がディレクトリに対して適切な権限を持っているかどうかを確認してください。
  • ファイルを作成し、メインなしでコンパイルしましたか?
  • クラスパスを確認してください。以前のクラス ファイルがまだ JDK によってクラスパスで検出されている可能性があります。
  • エディターではなく cmdLine から .java ファイルをコンパイルしてみてください。
于 2013-07-30T10:31:58.293 に答える
1

他の人が述べたように、あなたのコードは問題ありません。あなたの環境に問題があるはずです。最近、この質問を調査して回答しているときに、同様の問題が発生しました。

基本的に、その質問では、クラスパスにユーザー作成が存在したため、コードはVoid.class instanceof Classコンパイラ エラーになりました。Class.classClassjava.lang.ClassClass

似たようなことがここで働いているかもしれません。String.classクラスパスにユーザー作成が存在する可能性があります。次に、あなたの署名mainString[] argsは、Dr. Java がJava 組み込みの の配列を取るメソッド、つまり. クラスパス (またはプロジェクト内?) にカスタム クラスがある場合、Java コンパイラは組み込みの .xml よりもそれを選択します。コマンド ラインからクラスをコンパイルして実行すると、次のランタイム エラーが発生します。 StringmainStringjava.lang.String[]StringStringTestException in thread "main" java.lang.NoSuchMethodError: main

@S0urceC0ded の提案に従ってTest.class、テキスト エディターで見ると次のようになります。

main([LString;)V  // A user-made String class

本来あるべきものの代わりに:

main([Ljava/lang/String;)V  // The built-in java.lang.String class

その場合は、独自のStringクラス (少なくとも .class ファイルだけでなく、.class ファイルが再作成されないように .java ファイルも) をクラスパスから削除し、Testクラスを再度コンパイルして実行します。

あなたの環境を見ないと、これが問題であると確信できません。しかし、それは説明できます。

于 2013-07-30T23:39:18.483 に答える
1

コードに問題はありません。

問題があるのは実行環境です。詳細を共有してください。

于 2013-07-30T08:50:52.937 に答える
0

Dr.Java を IDE として使用している場合は、'public static void main' を含むメイン クラスがプログラムの一番上にあることを確認する必要があります。そうしないと、Dr.Java は実行時にこのエラーをスローします。

于 2016-04-09T14:00:16.433 に答える