DEV Community

Discussion on: Why won't Eclipse run my program? (Possibly the unresolved error from before).

Collapse
 
baenencalin profile image
Calin Baenen

Tried it. It doesn't work.

The visibility of the class doesn't (and shouldn't) matter. It's the visibility of the entry point (Main.main).
But that's not even the error, whether it's public or not, it says it can't find the class (with the same details).

Collapse
 
thorstenhirsch profile image
Thorsten Hirsch • Edited

In such a case I try to run things from the command line. And it works:

$ javac -cp . RuntDeale/code/Main.java
$ java RuntDeale.code.Main
$ tree
.
└── RuntDeale
    └── code
        ├── Main.class
        └── Main.java
Enter fullscreen mode Exit fullscreen mode

So the problem is probably some wrong setting in Eclipse or a different directory structure than what Eclipse expects. My directory structure in the shell snippet is plain java with a directory for each part of the package name (separated by a dot). Java's classpath needs to be set to the current directory, so that it can find the Main class (-cp .). But your Eclipse project has at least an additional src directory as entry point. When I start new java projects I use maven or gradle and follow their directory structure, which also have your srcdirectory, but additionally a main and a java directory. Then I can use any Java IDE, because they all support maven's directory structure.

P.S.: Actually you don't need -cp, yet, as long as you've got a single .java file only.

Collapse
 
baenencalin profile image
Calin Baenen

On second thought, what exactly causes the main class not to be found.
One may be mistyping main, or not providing a main class entry.

But what things can cause this error, and what can I do to resolve it (within my Eclipse project)?