What does "Could not find or load main class" mean?

Gareth D.

The Problem

After running java Main, you get the error message, “Could not find or load main class”. What does this mean?

The Solution

This error message usually means that you gave the wrong file (or no file) to java on the command line.

If you run java thisfiledoesnotexist in your terminal or command prompt, you should see the same error.

Error: Could not find or load main class thisfiledoesnotexist Caused by: java.lang.ClassNotFoundException: thisfiledoesnotexist

A common cause of this error is passing in the .class file that javac creates by mistake. For example, let’s say you have the following code in a file called HelloWorld.java:

public class HelloWorld { public static void main(String[] arg) { System.out.println("Hello"); } }

When you run javac HelloWorld.java, the file HelloWorld.class is produced, which is the compiled version of the program that you can execute.

But to run this program, you should use:

java HelloWorld

Output:

Hello

If you run:

java HelloWorld.class

The output will be:

Error: Could not find or load main class HelloWorld.class Caused by: java.lang.ClassNotFoundException: HelloWorld.class

Some other common mistakes that might give you this error include:

  • Using the wrong case. For example, java helloworld instead of java HelloWorld
  • Typing errors. For example java hellowrld instead of java HelloWorld
  • Using the incorrect directory. First use cd to get to the same directory as your .java and .class files, and then run java HelloWorld.

Loved by over 4 million developers and more than 90,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.