使用javac / java手动编译和运行多个包

时间:2015-02-15 15:10:16

标签: java javac

假设我有以下文件夹结构:

\ src \ com \ proj \ pp1 \ stuff其中com.proj.pp1com.proj.pp1.stuff是我拥有的两个包:

    -src
      -com
        -proj
          -pp1
             tester.java
             -stuff
                some other .java's

作为tester.java中的主要功能,并使用/ stuff中声明的类。

tester.java我以这种方式声明导入:

package com.proj.pp1;    
import com.proj.pp1.*;

在所有在stuff下声明的文件中:

package com.proj.pp1.stuff;

没有任何进口。

我可以让.class执行以下操作,位于/pp1文件夹中:

javac tester.java stuff/*.java

但是当我尝试运行测试者类时:

java tester

它给出了错误输出: 无法找到或加载主类测试人员 如果我尝试java com.proj.pp1.tester

,那就完全一样了

您认为实际问题是什么?

2 个答案:

答案 0 :(得分:1)

javac文件作为参数,因此它应该是

cd src
javac com/proj/pp1/tester.java

那应该编译tester.java和所有相关的类。

java将主作为参数,因此要运行它:

java com.proj.pp1.tester

(当您调用java com.proj.pp1.tester时,请确保com/proj/pp1/tester.class存在。)

您可能希望阅读-d的{​​{1}}选项,以避免将您的课程放在源目录中。

答案 1 :(得分:0)

javac -d bin src/*.java src/stuff/*.java
java -classpath bin src.Main