[建立和構建應用程序的主要工具] 之 javac

官網-javachtml

1. 簡述

javac工具及其選項來讀取Java類和接口定義,並將它們編譯爲字節碼和類文件。該javac命令還能夠處理Java源文件和類中的註釋。java

2. 命令

用法: javac <options> <source files>

其中, options 可能的選項包括:
  -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                    出現警告時終止編譯
  @<文件名>                     從文件讀取選項和文件名
  
sourcefiles:

要編譯(例如MyClass.java)或處理註釋(例如MyPackage.MyClass)的一個或多個源文件。
複製代碼

3. 編譯的文件傳給javac的方法

  • 對於少許源文件,您能夠在命令行上列出文件名。
  • 對於大量源文件,能夠使用命令行上的選項包含列出源文件名的文件

源代碼文件名必須具備.java後綴,類文件名必須具備.class後綴,源文件和類文件都必須具備標識該類的根名稱。例如,一個被調用的類MyClass將被寫入一個被調用的源文件中,MyClass.java並被編譯成一個名爲的字節碼類文件MyClass.class。windows

內部類定義生成其餘類文件。這些類文件具備組合內部和外部類名稱的名稱,eg: MyClass$MyInnerClass.class。bash

默認狀況下,編譯器將每一個類文件放在與其源文件相同的目錄中。您能夠使用該-d選項指定單獨的目標目錄。oracle

4. JDK9新特性

JDK_JAVAC_OPTIONS在JDK 9中引入了一個啓動器環境變量,它將其內容添加到命令行中javac。工具

所述的內容JDK_JAVAC_OPTIONS的環境變量,由白色空間()或空白字符分隔(\n,\t,\r,或\f)被預置到傳遞到命令行參數javac做爲參數的列表。ui

環境變量的編碼要求javac與系統上的命令行相同。JDK_JAVAC_OPTIONS環境變量內容的處理方式與命令行中指定的方式相同。編碼

單引號(')或雙引號(")可用於包含包含空格字符的參數。經過簡單地刪除引號對來保留開放引用和第一個匹配的關閉引用之間的全部內容。若是找不到匹配的引號,啓動器將停止並顯示錯誤消息。支持,由於它們在命令行中指定。可是,如同不支持使用通配符同樣。 @files@filesspa

引用包含空格的參數的示例:命令行

export JDK_JAVAC_OPTIONS='@"C:\white spaces\argfile"'
複製代碼
export JDK_JAVAC_OPTIONS='"@C:\white spaces\argfile"'
複製代碼
export JDK_JAVAC_OPTIONS='@C:\"white spaces"\argfile'
複製代碼
相關文章
相關標籤/搜索