javac -sourcepath選項的要點是什麼?sourcepath和只指定源文件之間的區別?
假設你有一個文件Ball.java和文件Eight.java,似乎運行沒有什麼區別:
javac Eight.java lib/pool/Ball.java
和
javac Eight.java -sourcepath lib
類路徑對我來說很有意義的這意味着你只需要將類文件分發給不需要混淆源代碼的開發者,但是如果它是你自己的/內部項目,所以我不認爲你可能需要/不需要源代碼爲什麼需要它。
人們是否有大量的源代碼庫而不是類?
從進一步的測試我已經證實,-sourcepath甚至沒有考慮源代碼的最後修改日期,就像classpath一樣,所以甚至不可能在構建過程中節省時間。當使用-classpath時,如果.class文件不存在並且源文件存在,或者.java文件比.class文件更新,則它將生成.class文件,而源路徑上的任何源文件將被無限制地重新構建他們是多麼新。並且,當指定-sourcepath和-classpath時,如果源文件較新,則只需重建類路徑的操作即可,因此指定源路徑和類路徑似乎完全沒有意義。 我也測試過,以確保-sourcepath和-classpath都只構建解析所需的必要源文件。 -sourcepath指定特定.java文件的唯一好處是,sourcepath只需要指定一個目錄,並且會自動提取任何jar或zip文件。
所以是懶惰的源路徑點(不想提取&指定所有的源文件)? 是否有使用-sourcepath over -classpath的好處?由於他們似乎做同樣的事情,但類路徑通過節省時間,當源不需要重建時更好地執行它。
是的,我從測試中發現的另一個區別是類路徑將查找.class和.java文件以解析,並且如果.class文件不存在或者.java文件的修改時間將生成源代碼大於.class文件。儘管源路徑每次都會重新編譯源,而不管最後一次修改日期。我純粹試圖找出這個原因,指定sourcepath的目錄和顯式指定你想要的是由javac構建的確切文件 – lavamunky 2013-04-25 10:47:44