javac編譯多個java文件以及-cp、-classpath、-sourcepath

//編譯多個文件
javac  path_of_file_a/a.java path_of_file_b/b.java path_of_file_c/c.java
 
-cp(classpath) 與 -sourcepath 的區別與聯繫:
當 -sourcepath 沒有指定時,在 -cp 路徑裏面搜索 .class 和 .java 文件,
當 -sourcepath 指定時,只搜索 -cp 路徑下的 .class 文件,即便 -cp 路徑下有要找的 .java 文件也會不搜索這個文件,
而 -sourcepath 只搜索 .java 文件,不搜索 .class 文件。
所以應該避免用 -sourcepath ,而只用 -cp 來指定搜索 .class 和 .java 文件的路徑。
 
並且還有一個要清楚的地方,-cp(classpath) 與 -sourcepath 是在 javac 解析 .java 文件裏面的未知符號時搜索這個符號所在 .class 或者 .java 文件的路徑,而不是從-cp(classpath) 與 -sourcepath  裏面搜索傳給javac 命令的參數裏面的 .java 文件。
好比:C:\Users\xxNote\Desktop\test>javac x/a.java -cp y
這句的意思是編譯 C:\Users\xxNote\Desktop\test\x\a.java ,若是 a.java 裏面有未知的符號b, 那麼從 C:\Users\xxNote\Desktop\test\y\ 路徑下的 .class 或 .java 文件裏面搜索,而不是從 C:\Users\xxNote\Desktop\test\y\ 路徑下搜索 x\a.java  。
 
各個命令之間沒有前後順序,思考一下,javac是如何判斷各個參數呢?當遇到參數結尾是 .java 的就知道是要編譯的 java 文件,其餘參數前都是 -xx 或者 @xx 這樣就區分了。
 
>javac命令行參數
用法: javac <options> <source files>
其中, 可能的選項包括:
  -g                         生成全部調試信息
  -g:none                    不生成任何調試信息
  -g:{lines,vars,source}     只生成某些調試信息
  -nowarn                    不生成任何警告
  -verbose                   輸出有關編譯器正在執行的操做的消息
  -deprecation               輸出使用已過期的 API 的源位置
  -classpath <路徑>            指定查找用戶類文件和註釋處理程序的位置
  -cp <路徑>                   指定查找用戶類文件和註釋處理程序的位置
  -sourcepath <路徑>           指定查找輸入源文件的位置
  -bootclasspath <路徑>        覆蓋引導類文件的位置
  -extdirs <目錄>              覆蓋所安裝擴展的位置
  -endorseddirs <目錄>         覆蓋簽名的標準路徑的位置
  -proc:{none,only}          控制是否執行註釋處理和/或編譯。
  -processor <class1>[,<class2>,<class3>...] 要運行的註釋處理程序的名稱; 繞過默
認的搜索進程
  -processorpath <路徑>        指定查找註釋處理程序的位置
  -parameters                生成元數據以用於方法參數的反射
  -d <目錄>                    指定放置生成的類文件的位置
  -s <目錄>                    指定放置生成的源文件的位置
  -h <目錄>                    指定放置生成的本機標頭文件的位置
  -implicit:{none,class}     指定是否爲隱式引用文件生成類文件
  -encoding <編碼>             指定源文件使用的字符編碼
  -source <發行版>              提供與指定發行版的源兼容性
  -target <發行版>              生成特定 VM 版本的類文件
  -profile <配置文件>            請確保使用的 API 在指定的配置文件中可用
  -version                   版本信息
  -help                      輸出標準選項的提要
  -A關鍵字[=值]                  傳遞給註釋處理程序的選項
  -X                         輸出非標準選項的提要
  -J<標記>                     直接將 <標記> 傳遞給運行時系統
  -Werror                    出現警告時終止編譯
  @<文件名>                     從文件讀取選項和文件名
相關文章
相關標籤/搜索