HOWTO · Java

Java でアノテーション処理が明示的に要求されている場合にのみクラス名が受け入れられる問題を修正

このチュートリアルでは、アノテーション処理が明示的に要求された場合にのみクラス名が受け入れられるという Java エラーの理由と解決策を説明します。

このページの内容

このチュートリアルでは、サンプル Java プログラムを使用してこのエラーを修正する理由とガイドを紹介します。

Java でアノテーション処理が明示的に要求された場合にのみ、クラス名test.javaが受け入れられるを修正する

解決策に進む前に、次の Java プログラムを作成して、このエラーの考えられる理由を理解しましょう。

コード例:

// test class
public class test {
  // main()
  public static void main(String[] args) {
    // print message
    System.out.println("Hello, this is just a test program.");
  } // end main()
} // end test class

次に、以下のコマンドを使用して Java コードをコンパイルします。

javac writeYourFileNameHere

ここで、クラス名、'test.java' は、注釈処理が明示的に要求された場合にのみ受け入れられるというエラーが表示されます (test.javaはファイル名であり、そこにファイル名が表示されます)。

なぜそうなのですか? Java ドキュメント によると、このエラーが発生する理由は 2つあります。

  1. ファイル名の末尾に .java サフィックスを追加するのを忘れています。
  2. .java サフィックスの不適切な大文字化を使用しています。 たとえば、javac test.Java としてコンパイルします。

次のスクリーンショットで両方のコマンドを見つけることができます。

注釈処理が明示的に要求された場合にのみクラス名が受け入れられる - エラー

このエラーを解決するにはどうすればよいですか?

このコンパイル時エラーの解決策は非常に簡単です。 .java サフィックス (すべて小文字) を追加するだけです。

以下のサンプルコードを使ってやってみましょう。

コード例:

// test class
public class test {
  // main()
  public static void main(String[] args) {
    // print message
    System.out.println("Hello, this is just a test program.");
  } // end main()
} // end test class

今回は、javac test.javaを使用してコードをコンパイルしました。 コンパイルが成功したら、java test コマンドを使用してプログラムを実行します (独自のファイル名を書くことを忘れないでください)。

これらのコマンドは両方とも、次のスクリーンショットに示されています。

出力:

クラス名は、アノテーション処理が明示的に要求された場合にのみ受け入れられます - ソリューション