Java命令行编译问题和依赖项

| 我具有以下类结构:
Main Class: WordNet.java
WordNet.java uses SAP.java
SAP.java uses DeluxeBFS.java
当我运行命令
$ javac WordNet.java
我回来
WordNet.class
WordNet$Synset.class
SAP.class
DeluxeBFS.class
DeluxeBFS$markDist.class
Synset和markDist是私有类。 我不明白的是为什么如果我在DeluxeBFS中进行更改并重新编译WordNet,则不会编译该更改。由于WordNet取决于DeluxeBFS,因此,如果进行了更改,则Java编译器不应重新编译它?似乎文件甚至没有被触及。     
已邀请:
不,编译器会找到
DeluxeBFS
的类文件,这已经结束了-它不会尝试寻找它的源文件(当然可以在任何地方)。 通常,在使用javac从命令行进行编译时,最好重新编译所有内容。 如果要进行增量编译以注意到哪些文件已更改等,则应使用Eclipse之类的IDE。     
您回答了自己的问题-javac不会重新编译所有依赖项,仅编译作为输入给出的文件。这实际上是一个优势-像Eclipse这样的IDE只会编译修改后的文件,而不是整个代码库     

要回复问题请先登录注册