你也許會想問,先前曾經談過使用 javac
編譯時,可以 -sourcepath
指定原始碼路徑,那麼在編譯模組時有類似的引數嗎?因為也許你拿到了其他模組的原始碼(而不是編譯或進一步封裝好的模組),想要自行編譯出
.class 檔案。
在使用 javac
時,確實是有個 --module-source-path
可以指定模組的原始碼路徑,以〈編譯器與 module-path〉中
的範例來說,若不想分別對 cc.openhome.util
與 cc.openhome
模組分別進行編譯,那麼只要如下指定 --module-source-path
就可以了:
使用 --module-source-path
指定模組的原始碼路徑時,由於原始碼可能是來自於多個模組,因此搭配的 -d
引數在指定路徑時,只需要指定頂層資料夾,編譯器會自行建立起對應於模組名稱的資料夾。
實際上,在能夠運用 --module-path
與 --module-source-path
引數之後,搭配 -d
引數時,本來就只需指定頂層資料夾,〈JVM
與 module-path〉、〈編譯器與
module-path〉只是個循序漸進的過程,讓你逐步瞭解 --module-path
與 --module-source-path
的作用,也就是說,如下編譯 cc.openhome.util
及 cc.openhome
模組就可以了:
簡單來說,可以暫時將 --module-path
與 --module-source-path
想像成 -classpath
與 -sourcepath
的對應物,這樣在指定引數就容易記憶且不會產生混淆了。
如果這些對模組的基本認識還不過癮,可以看看〈Project Jigsaw: Module System Quick-Start Guide〉以及〈The State of the Module System〉。