Java编译器不';t在第一次编译之后编译所有子文件夹
我对java编译器有问题。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项目的文件夹如下所示:
- 主文件夹
- 传送文件夹
- 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
来调试它,等等。好的,非常感谢您为我清理这个。祝您有个美好的一天。