他の人が述べたように、あなたのコードは問題ありません。あなたの環境に問題があるはずです。最近、この質問を調査して回答しているときに、同様の問題が発生しました。
基本的に、その質問では、クラスパスにユーザー作成が存在したため、コードはVoid.class instanceof Class
コンパイラ エラーになりました。Class.class
Class
java.lang.Class
Class
似たようなことがここで働いているかもしれません。String.class
クラスパスにユーザー作成が存在する可能性があります。次に、あなたの署名main
でString[] args
は、Dr. Java がJava 組み込みの の配列を取るメソッド、つまり. クラスパス (またはプロジェクト内?) にカスタム クラスがある場合、Java コンパイラは組み込みの .xml よりもそれを選択します。コマンド ラインからクラスをコンパイルして実行すると、次のランタイム エラーが発生します。 String
main
String
java.lang.String[]
String
String
Test
Exception 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
クラスを再度コンパイルして実行します。
あなたの環境を見ないと、これが問題であると確信できません。しかし、それは説明できます。