当使用 GNU Make 时,如果源文件不比已经存在的目标文件更新,则不会再次编译源文件。我想知道这是否也是javac的行为?还是 javac 总是编译源文件而不检查现有的类文件?
最佳答案
如果您正在执行 javac *.java,它将始终重新编译当前目录中的 java 文件,或者 javac Test.java 将始终编译一个文件。
但是,如果 Test.java 依赖于其他 java 文件,它们将被编译为类,但规则不同!
只有当源文件有更新的日期时它们才会被编译(而且我确信还有其他我没有想到的情况)
也许这就是您观察到的行为?
关于java - javac 是否总是在每次调用时将 .java 文件编译为 .class 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698988/