java - javac 是否总是在每次调用时将 .java 文件编译为 .class 文件?

标签 java makefile gnu-make javac

当使用 GNU Make 时,如果源文件不比已经存在的目标文件更新,则不会再次编译源文件。我想知道这是否也是javac的行为?还是 javac 总是编译源文件而不检查现有的类文件?

最佳答案

如果您正在执行 javac *.java,它将始终重新编译当前目录中的 java 文件,或者 javac Test.java 将始终编译一个文件。

但是,如果 Test.java 依赖于其他 java 文件,它们将被编译为类,但规则不同!

只有当源文件有更新的日期时它们才会被编译(而且我确信还有其他我没有想到的情况)

也许这就是您观察到的行为?

关于java - javac 是否总是在每次调用时将 .java 文件编译为 .class 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698988/

相关文章:

makefile - GNU 制作 : clean target depends on includes

c - "make clean"结果 "No rule to make target ` 干净 '"

makefile - 强制 make 从文件中查找过时的情况

c - 适当的 Makefile 来替换 gcc 编译/链接运行?

JavaFX 相当于 java.awt.EventQueue

java - 如何防止 Spring Data MongoDB 将 id 字段映射为对象 id?

java - 如何在 DockLayoutPanel 中显示和隐藏小部件?

java - PendingIntent 到底什么时候被处理/删除?

makefile - GNU Makefile "preprocessor"?

makefile - gnu make、microsoft nmake 和 posix standard make 有何相似/不同?