2

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

Community
  • 1
  • 1
sedeh
  • 7,083
  • 6
  • 48
  • 65

2 Answers2

3

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

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724
  • Thanks. I added `../mobile` when all else seem to fail. But it should not be there as you pointed out. `mobile.TestPhone` does it! – sedeh Nov 10 '14 at 20:37
-1

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

Cronical
  • 34
  • 8