从命令行编译时,如何将我的类放在包中?

时间:2013-10-28 20:26:17

标签: java compilation package

我在文件夹中有一个TestClass java:

c:\foo\bar\TestClass.java

代码如下所示:

public class TestClass {

    public static void main(String[] args){

        System.out.println("Hello World!");


    }
}

当我输入

c:\foo\bar\javac TestClass.java 

然后

c:\foo\bar\java TestClass

我看到你好世界。

但我想追加

 package bar; 

 package foo.bar;

到我的班级,因为它实际上在文件夹中: foo \ bar

当我添加

package bar;

并执行此操作:

 c:\foo\javac bar\TestClass.java

编译很好,但是当我尝试:

c:\foo\java bar\TestClass

我得到: java.lang.NoClassDefFoundError 因为包信息错了我相信。

我该如何使这项工作?

2 个答案:

答案 0 :(得分:3)

c:\foo>java bar.TestClass

代替

已编译的课程与TestClass不同,现在bar.TestClass完全合格

答案 1 :(得分:1)

如果要在包内的特定类中调用main方法,请指定类的完整路径。在你的情况下,这将是bar.TestClass,即

c:\foo>java bar.TestClass

如您所见,我用/替换了文件分隔符(.)。