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

Manually compile and run multiple packages using javac/java

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

\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 中声明的 classes。

tester.java 中,我这样声明导入:

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

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

package com.proj.pp1.stuff;

没有任何导入。

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

javac tester.java stuff/*.java

但是当我尝试 运行 测试仪 class:

java tester

它给我错误输出: 无法找到或加载主要 class 测试程序 如果我尝试 java com.proj.pp1.tester

也是一样

您认为实际问题可能是什么?

javacfiles 作为参数,所以它应该是

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

应该编译 tester.java 和所有相关的 classes.

java 以主要的 class 作为参数,所以 运行 你这样做:

java com.proj.pp1.tester

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

您可能需要阅读 javac-d 选项以避免将您的 classes 放在源目录中。

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