Let's say I have the following folder structure:
\src\com\proj\pp1\stuff where com.proj.pp1
and com.proj.pp1.stuff
are the two packages I have:
-src
-com
-proj
-pp1
tester.java
-stuff
some other .java's
Being the main function in tester.java, and using the classes declared in /stuff.
In tester.java
I declare the imports that way:
package com.proj.pp1;
import com.proj.pp1.*;
And in all the files declared under stuff:
package com.proj.pp1.stuff;
without any imports.
I'm able to get the .class's doing the following, being in /pp1
folder:
javac tester.java stuff/*.java
But when I try to run the tester class:
java tester
It gives me the error output:
Could not find or load main class tester
and the very same thing if I try java com.proj.pp1.tester
What do you think could be the actual problem?
javac
takes files as arguments, so it should be
cd src
javac com/proj/pp1/tester.java
That should compile tester.java
and all related classes.
and java
takes the main class as argument, so to run it you do:
java com.proj.pp1.tester
(When you invoke java com.proj.pp1.tester
make sure com/proj/pp1/tester.class
exists.)
You might want to read up on -d
option for javac
to avoid putting your classes in the source directory.