5
package com.test01;

public class test01 {
    public static void main(String[] args)
    {
        System.out.println("hi");
    }
}

I think the java application launcher is very stupid. I have point out the test01.class position:
java -cp . test01(.class)
but this doesn't works. It's very hard to use.

lovespring
  • 19,051
  • 42
  • 103
  • 153
  • 1
    the -cp have to point out the dir which contain 'com'..... so, this works: java -cp ./bin/(contain com) com.test01.test01 – lovespring Jun 11 '11 at 07:29

2 Answers2

20

You would run

java com.test01.test01

but having a class with the same name as a package is a really bad idea (as well as not following the Java naming conventions).

You'd need to run it with the relevant class on the classpath. For example, you could just compile it like this (from the "root" of your source tree):

javac -d . [path to source file]
java com.test01.test01

or if you've got your source organized appropriately already:

javac com\test01\test01.java
java com.test01.test01
Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
3

You should be changing over to the base directory from where the classes start

java -cp $CLASSPATH:.: com.test01.test01

But naming a class "test01" is not a good naming convention.