この投稿では、問題を解決するための解決策を紹介します。 シンボルを見つけることができません のエラー ジャワ。 これは、コンパイラが識別子への参照を見つけられない場合に発生するコンパイル エラーです。 幸いなことに、いくつかの簡単な提案に従ってエラーを修正できます。
Javaでシンボルが見つからないエラーを修正
Java で「シンボルが見つかりません」エラーを修正するには、次の提案に従ってください。
- 入力ミスをチェックする
- 未宣言または範囲外の変数
- インポートステートメントがありません
それでは、これらを詳しく見てみましょう。
1) 入力ミスがないか確認する
まず、プログラム内に入力エラーがないか確認します。 私たちの経験では、Java で「シンボルが見つかりません」エラーが発生する最も一般的な理由はタイプミスです。 以下に例を示します。
public class TypoExample public static void main(String() args) int number = 10; System.out.println("The value is: " + numer); // Typo 1 String greeting = "Hello, World!"; System.out.println(greetting); // Typo 2
出力:
TypoExample.java:5: error: cannot find symbol System.out.println("The value is: " + numer); // Typo 1 ^ symbol: variable numer location: class TypoExample TypoExample.java:7: error: cannot find symbol System.out.println(greetting); // Typo 2 ^ symbol: variable greetting location: class TypoExample 2 errors
Typo 1 では、number が numer と書かれていることがわかります。 そして、タイプミス 2 では、挨拶は挨拶と書かれます。 修正されたコードは次のとおりです。
public class TypoExample public static void main(String() args) int number = 10; System.out.println("The value is: " + number); // Fixed typo 1 String greeting = "Hello, World!"; System.out.println(greeting); // Fixed typo 2
出力:
The value is: 10 Hello, World!
2) 未宣言または範囲外の変数
Java プログラムでシンボルが見つからないエラーは、宣言されていない変数またはスコープ外の変数が原因で発生することもあります。 エラーを示す Java プログラムは次のとおりです。
public class ScopeDemo public static void main(String() args) int x = 5; System.out.println("The value is: " + y); // Undeclared variable // Out-of-scope variable if (x > 0) int z = 10; System.out.println("The value of z is: " + z); // Out-of-scope variable
出力:
ERROR! javac /tmp/v1FN2QQUVZ/ScopeDemo.java /tmp/v1FN2QQUVZ/ScopeDemo.java:8: error: cannot find symbol System.out.println("The value is: " + y); // Undeclared variable ^ symbol: variable y location: class ScopeDemo /tmp/v1FN2QQUVZ/ScopeDemo.java:14: error: cannot find symbol System.out.println("The value of z is: " + z); // Out-of-scope variable ^ symbol: variable z location: class ScopeDemo 2 errors
このコードでは、変数 y が適切な宣言なしで使用されています。 また、変数 z は if ブロック内にあります。 これにより、ブロックの外でアクセスするとスコープ外となり、「シンボルが見つかりません」エラーが発生します。 修正されたコードは次のとおりです。
public class ScopeDemo public static void main(String() args) int x = 5; System.out.println("The value is: " + x); // Fixed variable name // Moved the declaration to the outer scope int z = 0; if (x > 0) z = 10; System.out.println("The value of z is: " + z); // Fixed variable scope
出力:
The value is: 5 The value of z is: 10
3) インポートステートメントが欠落している
Java の import ステートメントは、単一のステートメントを使用して、パッケージ内の指定されたプログラムに対してクラスまたはすべてのクラスを表示できるようにするのに役立ちます。 クラスまたはパッケージが適切にインポートされていない場合、Java で「シンボルが見つかりません」エラーが発生する可能性があります。 エラーを示すサンプル プログラムは次のとおりです。
public class ImportDemo public static void main(String() args) // Missing import statement for Scanner Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: "); int number = scanner.nextInt(); System.out.println("You entered: " + number);
出力:
ERROR! javac /tmp/v1FN2QQUVZ/ImportDemo.java /tmp/v1FN2QQUVZ/ImportDemo.java:7: error: cannot find symbol Scanner scanner = new Scanner(System.in); ^ symbol: class Scanner location: class ImportDemo /tmp/v1FN2QQUVZ/ImportDemo.java:7: error: cannot find symbol Scanner scanner = new Scanner(System.in); ^ symbol: class Scanner location: class ImportDemo 2 errors
ここでは、スキャナー クラスをインポートせずに使用しようとしています。 import ステートメント、つまり「import java.util.Scanner」を追加すると、プログラムが正常に実行されます。 修正したものは次のとおりです。
import java.util.Scanner; public class ImportDemo public static void main(String() args) // Fixed import statement for Scanner Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: "); int number = scanner.nextInt(); System.out.println("You entered: " + number);
出力:
Enter a number: 2 You entered: 2
読む: Windows 11 で Java が動作しない
これらの提案がエラーの修正に役立つことを願っています。
解決できないシンボルとは何ですか?
Java では、「シンボルを解決できません」エラーは、コード内で使用されている名前をコンパイラが認識できないことを示します。 通常、これはクラスをインポートできない場合、誤った入力ミス、またはクラスが存在しない場合に発生します。
不明なシンボル エラーは通常 Java を示しますか?
不明なシンボル エラーは、Java コンパイラが変数名やメソッド名など、認識できないシンボルへの参照を検出した場合に発生します。 これは、コードにタイプミスがあるか、それが範囲外であることを示します。