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 エラーは、プログラムに次のような問題がある場合に発生します。
- 数字とテキストを含むリテラル。
true、false、class、whileなどのキーワード。- 演算子と、
-、/、+、=、{などの英数字以外のトークン。 Reader、main、toStringなどの識別子。- 空白とコメント。
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);
}
}
同じコマンドでプログラムを実行すると、プログラムは正常にコンパイルされます。