Java编译器不';t在第一次编译之后编译所有子文件夹

Java编译器不';t在第一次编译之后编译所有子文件夹,java,Java,我对java编译器有问题。 我的java项目的文件夹如下所示: 主文件夹 传送文件夹 Box.java Factory.java FragileBox.java Supplier.java 测试文件夹 Test.java Test2.java Test3.java Test4.java Test5.java DeliveryTest.java 显然,我还有两个软件包,一个交付软件包和一个测试软件包。这是一个学校项目,因此给出了测试包,我们必须编写交付包,由测试包进行测试 Deli

我对java编译器有问题。
我的java项目的文件夹如下所示:

  • 主文件夹
    • 传送文件夹
      • Box.java
      • Factory.java
      • FragileBox.java
      • Supplier.java
    • 测试文件夹
      • Test.java
      • Test2.java
      • Test3.java
      • Test4.java
      • Test5.java
    • DeliveryTest.java
显然,我还有两个软件包,一个
交付软件包
和一个
测试软件包
。这是一个学校项目,因此给出了
测试包
,我们必须编写
交付包
,由
测试包
进行测试

DeliveryTest.java如下所示:

import java.util.ArrayList;

import java.util.List;

import test.*;

import delivery.*;

public class DeliveryTest {

    public static void main(String[] args) {

        List<Test> tests = new ArrayList<Test>();
        tests.add(new Test2());
        tests.add(new Test3());
        tests.add(new Test4());
        tests.add(new Test5());

        int level = 1;

        for (Test test : tests) {
            if (test.test()) {
                ++level;
            }
        }
        System.out.println("Az elert szint: " + level);
    }
}
import java.util.ArrayList;
导入java.util.List;
进口测试*;
进口交货。*;
公共类交付测试{
公共静态void main(字符串[]args){
列表测试=新建ArrayList();
添加(新的Test2());
添加(新的Test3());
添加(新的Test4());
添加(新的Test5());
智力水平=1;
用于(测试:测试){
if(test.test()){
++水平;
}
}
System.out.println(“Az elert szint:+级别);
}
}
我真的不想详细说明代码的工作和目的,我认为这与此处无关。
我的问题是,如果我将DeliveryTest.java编译为
javac DeliveryTest.java
,它会创建类文件并成功编译,但是:在第一次编译之后,当创建的所有类文件都在
delivery package
上进行任何更改时,它不会再次编译,只有
测试包
,在编译器完成编译后,它将返回一切正常。如果我从
传递文件夹
中删除一个类文件,它甚至不会再次创建类文件。但是,
测试包在第一次编译后编译良好,没有问题。
我怎样才能在第一次编译之后也编译交付包呢


感谢您的帮助

Java编译器不会到处寻找要编译的文件。如果您从命令行调用它,那么最好使用命名文件夹中所有Java文件的调用。假设主文件夹是您的工作目录

javac DeliveryTest.java delivery/*.java test/*.java

如果不更改测试包中的文件,则可能不必使用最后一个参数。

我建议您使用maven或gradle等构建工具和IDE。通过这种方式,您可以编辑代码并按
Run
按钮运行最新版本的代码。还有
Debug
来调试它,等等。好的,非常感谢您为我清理这个。祝您有个美好的一天。