Online Tutorials & Training Materials | STechies.com
Register Login
Advertisement

Error could not find or load main class eclipse (solved)

|| 0

Error could not find or load main class eclipse (solved)
Stechies

The Error Could not find class or load main class occurs when a program is run but the main class cannot be found or loaded. In this article, we will observe the different reasons for the error and ways to rectify it.

What is java <class-name> syntax?

The java basic <class –name> is as follows:

java [ <option> ... ] <class-name> [<argument> ...]

Here, 

  • <option> is the command line option required during execution,
  • <class-name> is the Java class’s name and
  • <argument> is the command line argument passed during the compilation of the program.

For example,

java -Xmx100m com.acme.example.FirstProg one two three

Here, the compiled version of the class name will be searched. Then the class will be loaded and the main class will be searched for execution. If the statement public static void main(String []args) is correct and the access modifiers, return types and has the correct signature, the execution will be completed.

What are the Causes of the error ‘Could not find or load main class’ in Java?

The causes of the error ‘Could not find or load main class’ in Java are as follows:

  • It is caused when a program is executed in the terminal and the main class is not found or cannot be loaded.
  • This is caused mainly due to syntax errors by the programmer.
  • If the CLASSPATH environment variable where Java searches for all the class files does not have the main class, this error is shown.
  • As Java is case sensitive, the incorrect casing for the main class can cause problems.
  • If the class is inside a package, the main class will not be loaded.
  • The incorrect directory is mentioned in the CLASSPATH.

How to Fix ‘Could not find or load main class’?

The methods to fix the error are:

1) Use Exact Classname instead .class file

  • You must execute the program by inserting the exact classname instead of the .class file. Therefore use the java classname For example, if the following syntax is compiled
javac Program1.java

There will be an error. Instead we have to type

java Program1

2) Check and Resolve Syntax Errors

  • Reduce syntax errors by Check the classname syntax and case before declaring it. For example, if we write the syntax
javac program1

And try to compile it, there will be an error. Therefore, type the syntax

java Program1

3)  Define Class-Path 

  • Check the classpath and reset it if the error shows up. You have to set the classpath to the current directory. For example, to set classpath in Windows, type the following syntax
CLASSPATH = %CLASSPATH%;.

The dot at the end represents the current directory.

4) Check Spelling and Case

  • Check the spelling and casing of the classname while typing the command. For example, if we type java program1, the error will be due to the incorrect spelling of the classname.

As Java is again a case sensitive, you also need to take care of casing. 

Type in java Progam1

5) Using .back Command

  • If the class exists inside a package, then navigate back to the main directory through the .back command. For example, the java class exists in the below path

E:primarycomprojects

The full name of the class will be com.projects.Program1. Then use the cd..back command to reach the parent directory primary

E:primary

You can then run the java command to load the class through the following syntax.

java com.projects.Program1

6) Check Classpath Directory and Sub-Directory

  • Check the directory and the sub-directory of the classpath. For example, the classpath is set to E:primarycomprojects then make sure that you do not write E:primaryprojectscom.

Conclusion

We have observed the various reasons for the “Error Could not find a class or load main class” and it can be observed that the basic syntax errors are the root causes of such a problem. Keeping in mind the casing of the Java classes and proper classpath settings can prevent such errors in the future.    


Advertisement
Advertisement
Advertisement