HOWTO · Java

JavacはJavaでシンボルエラーを見つけることができません

このチュートリアルでは、Java で javac cannot find symbol エラーを解決する方法を示します。

このページの内容

このチュートリアルでは、Java の javac cannot find symbol エラーを解決する方法を示します。

Java の Javac はシンボルを見つけることができません

Javac は Java で書かれたクラスやインターフェースを読み込み、バイトコードにコンパイルするツールです。 javac は、CLI の Java ファイルで使用されるコマンドです。

javac cannot find symbol エラーは、プログラムで定義または宣言された変数の使用を含む Java ファイルを実行しようとすると発生します。 javac cannot find symbol エラーは、コンパイラが認識できない何かを参照していることを意味します。

javac cannot find symbol エラーは、プログラムに次のような問題がある場合に発生します。

  1. 数字とテキストを含むリテラル。
  2. truefalseclasswhile などのキーワード。
  3. 演算子と、-/+={ などの英数字以外のトークン。
  4. ReadermaintoString などの識別子。
  5. 空白とコメント。

javac cannot find symbol をスローする例を作成しましょう。

public class Example {
  public static void main(String... args) {
    int a = 10;
    int b = 20;
    int c = 30;

    sum = a + b + c; // sum is not declared
    System.out.println(sum);
  }
}

上記のコードには、前に宣言されていない変数 sum があるため、シンボルが見つかりません エラーがスローされます。 CMD で Java ファイルのパスを取得し、javac でファイルをコンパイルします。

次のコマンドを使用します。

javac Example.java

上記のコードは、次のエラーをスローします。

C:\>javac Example.java
Example.java:7: error: cannot find symbol
        sum = a + b + c; // sum is not declared
        ^
  symbol:   variable sum
  location: class Example
Example.java:8: error: cannot find symbol
        System.out.println(sum);
                           ^
  symbol:   variable sum
  location: class Example
2 errors

この問題を解決するには、変数を使用する前にすべての変数が宣言されていることを確認してください。 解決策を参照してください。

public class Example {
  public static void main(String... args) {
    int a = 10;
    int b = 20;
    int c = 30;
    int sum; // declare sum
    sum = a + b + c;
    System.out.println(sum);
  }
}

同じコマンドでプログラムを実行すると、プログラムは正常にコンパイルされます。