
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What can cause the \\\"cannot find symbol\\\" error in Java?
In Java, the cannot find symbol error occurs when we try to reference a variable that is not declared in the program or when we try to access a class that is not declared or imported.
Possible Causes of 'Cannot Find Symbol' Error
Below is a list of some possible causes of the 'cannot find symbol' error in Java -
- Using a variable that is not declared or outside the code.
- Using wrong cases ("tutorials" and "Tutorials" are different) or making spelling mistakes.
- The packaged class has not been referenced correctly using an import declaration.
- Using improper identifier values like letters, numbers, underscore, and dollar sign. The hello-class is different from helloclass.
Example 1
If a variable is not declared in Java, the compiler will throw a cannot find symbol error.
In the following program, we are trying to print the value of the variable sum, which has not been declared. As a result, the compiler will throw a cannot find symbol error -
public class CannotFindSymbolTest { public static void main(String[] args) { int n1 = 10; int n2 = 20; sum = n1 + n2; System.out.println(sum); } }
Output
The above program throws the following error -
main.java:5: error: cannot find symbol sum = n1 + n2; ^ symbol: variable sum location: class CannotFindSymbolTest CannotFindSymbolTest.java:6: error: cannot find symbol System.out.println(sum); ^ symbol: variable sum location: class main 2 errors
Example 2
If a class from a package is not correctly referenced using an import statement in Java, the compiler will throw a cannot find symbol error.
Here is another program that also causes a cannot find symbol error. We are instantiating the Scanner class, but we have not imported the package java.util.Scanner so that the compiler will throw an error -
public class main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(n); } }
Output
The above program throws the following error -
main.java:3: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class main main.java:3: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class main 2 errors
Example 3
Since Java is a case-sensitive language, the compiler will throw a cannot find symbol error if a variable is referenced using a different case than it was declared -
public class main { public static void main(String[] args) { String name = "xyd"; System.out.println(Name); } }
Output
Following is the output of the above program -
main.java:4: error: cannot find symbol System.out.println(Name); ^ symbol: variable Name location: class main 1 error