sedeh
sedeh

Reputation: 7313

Classpath seems correct but JVM still could not find or load main class

I am relatively new to programming and java and am trying to learn how to create a user-defined package from the command-line. I get the following: Error: Could not find or load main class TestPhone. I've reviewed posts on this type of error including the well-commented post here. The post lists 4 steps that the JVM goes through to run a java program:

  1. Search for the compiled version of the class.
  2. Load the class.
  3. Check that the class has a main method with signature static void main(String[]).
  4. Call that method passing it the command line arguments as a String[].

Apparently, my JVM can't find my TestPhone.class for some reason I am yet to figure out. Here's my directory structure:

enter image description here

My classpath is set as follows:

enter image description here

My classes contain simple codes from Mala Gupta to test accessibility of class variables:

package mobile;
class Phone {
    static boolean softKeyboard = true;
}


package mobile;
class TestPhone {
    public static void main (String[] args) {
        Phone.softKeyboard = false;

        Phone p1 = new Phone();
        Phone p2 = new Phone();

        System.out.println(p1.softKeyboard);
        System.out.println(p2.softKeyboard);

        p1.softKeyboard = true;

        System.out.println(p1.softKeyboard);
        System.out.println(p2.softKeyboard);
    }
}

Any idea why it doesn't find my classes? Many thanks.

System specs: Java version 1.8.0 Javac 1.8.0 Win 7 on 32-bit OS

Upvotes: 2

Views: 709

Answers (2)

Cronical
Cronical

Reputation: 34

You are in the myJavaProject folder in cmd.

Try to go to c:\myJavaProject\mobile then it should work because your class is in mobile not in myJavaProject folder

Upvotes: -1

Sotirios Delimanolis
Sotirios Delimanolis

Reputation: 279990

The java application launcher, java, expects the fully qualified name of the class, mobile.TestPhone. The ../mobile directory need not be in the classpath.

Upvotes: 3

Related Questions