首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

Java編譯器 javac 核心參數與編譯流程詳解

     編輯:J2EE

`javac` 將 `.java` 原始碼編譯為 `.class` 位元碼。理解其參數對構建系統、排查編譯錯誤、啟用預覽特性至關重要。

核心選項速查

選項功能
-d <目錄>指定輸出根目錄,依套件結構建立子目錄
-sourcepath <路徑>指定原始碼搜尋路徑
-classpath / -cp <路徑>指定依賴類別/ JAR 搜尋路徑
-source <版本> / -target <版本>指定原始碼/位元碼版本(如 8, 11, 17, 21)
-g / -g:none / -g:{vars,lines,source}控制除錯資訊:區域變量、行號、原始檔
-parameters保留正式參數名稱(供反射/除錯)
-Xlint[:key]啟用/控制警告(unchecked, deprecation, rawtypes...)
-proc:{none,only}控制註解處理器執行
--enable-preview啟用預覽語言/VM 特性(需配合 -source/-target)
-version / --version顯示編譯器版本

編譯流程關鍵階段

  1. 詞法/語法分析 → 抽象語法樹 (AST)
  2. 語義分析:符號解析、型別檢查、常數摺疊
  3. 註解處理(可多輪觸發新原始檔生成)
  4. 位元碼生成:`ClassWriter` 輸出 `.class`

最佳實踐

  • 專案建議使用 Maven/Gradle 管理編譯參數,避免手動命令列
  • CI 流程加入 `-Xlint:all -Werror` 將警告視為錯誤
  • 多模組專案正確設定 `-sourcepath` 與 `-cp` 確保增量編譯正確
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved