Java编译器在第一次编译后不会编译所有子文件夹

标签 java

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

  • 主文件夹
    • 交付文件夹
      • Box.java
      • 工厂.java
      • FragileBox.java
      • Supplier.java
    • 测试文件夹
      • 测试.java
      • Test2.java
      • Test3.java
      • Test4.java
      • Test5.java
    • DeliveryTest.java

显然我还有 2 个包,一个交付包和一个测试包。这是一个学校项目,所以给出了测试包,我们必须编写交付包,并由测试包进行测试。

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);
    }
}

我真的不想详细说明代码的工作和目的,我认为它与这里无关。
我的问题是,如果我将 DeliveryTest.java 编译为 javac DeliveryTest.java,它会创建类文件并成功编译,但是:第一次编译后,当创建所有类文件时,我会创建任何交付包上的更改不会再次编译,只会编译测试包,并且编译器完成编译后,它将返回,因为一切顺利。如果我从交付文件夹中删除其中一个类文件,它甚至不会再次创建类文件。不过,测试包在第一次编译后编译得很好,没有任何问题。
如何才能在第一次编译后编译交付包?

感谢您的帮助

最佳答案

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

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

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

关于Java编译器在第一次编译后不会编译所有子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111802/

相关文章:

java - 如何在 hibernate 中交换具有唯一约束的记录

java - 如何从属性文件中读取值?

java - 时间戳解析失败

java - InputStream - 在什么时候下载数据

java - 可点击的 BaseAdapter 行?

java - Spring Data REST 在运行时选择字段

java - boolean 数组是否比相同大小的数字占用更多空间?

java - 确保我的 RNG 不会根据用户输入字符串崩溃

java - 删除菜单 Java Android

java - 无法获得要在面板中显示的 paintComponent() 结果