javac -sourcepath 选项的意义何在?
假设你有一个文件 Ball.java,和文件 Eight.java,运行起来似乎没有区别:
javac Eight.java lib/pool/Ball.java
和
javac Eight.java -sourcepath lib
类路径对我来说很有意义,因为这意味着您只需要将类文件分发给不需要弄乱源代码的开发人员,但我认为只有当它是您自己的源代码时,您才有可能拥有/需要源代码。内部项目,所以无法理解为什么需要它。
人们是否拥有大型源代码存储库而不是类?
通过进一步的测试,我已经确认 -sourcepath 甚至没有像类路径那样考虑源的最后修改日期,因此甚至无法在构建过程中节省时间。与使用 -classpath 时一样,如果 .class 文件不存在而源文件存在,或者 .java 文件比 .class 文件新,这将构建 .class 文件,而不管源路径上的任何源文件都将再次构建他们是多么新。当同时指定 -sourcepath 和 -classpath 时,只有在源文件较新时才会重建类路径,因此指定源路径和类路径似乎完全没有意义。我还进行了测试,以确保 -sourcepath 和 -classpath 都只构建解析所需的必要源文件。
那么 -sourcepath 的重点是由于懒惰(不想提取和指定所有源文件)吗?使用 -sourcepath 而不是 -classpath 有什么好处吗?因为它们似乎做同样的事情,但类路径通过在源不需要重建时节省时间来更好地执行它。