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

Java 編譯器 javac 完整參數指南與編譯優化技巧

     編輯:Java 相關知識

javac 編譯器核心功能

javac 是 JDK 核心工具,負責將 Java 原始碼(.java)編譯為 JVM 位元碼(.class)。與 java 執行器不同,javac 要求輸入檔案具備 .java 副檔名。

基本指令語法

javac [選項] 原始檔.java [其他原始檔...]

常用編譯選項對照表

選項功能說明
-classpath <路徑> / -cp設定類別搜尋路徑(多路徑用分號/冒號分隔)
-d <目錄>指定編譯輸出根目錄,依套件結構建立子目錄
-g產生所有除錯資訊(行號、區域變數、來源檔)
-g:none不產生任何除錯資訊
-g:{lines,vars,source}選擇性產生除錯資訊
-nowarn抑制所有警告訊息
-O啟用優化(內聯 static/final/private 方法),JDK 9+ 已移除
-verbose顯示編譯載入的類別與來源檔資訊
-source <版本>指定原始碼相容版本(如 8, 11, 17)
-target <版本>指定位元碼目標版本
-encoding <編碼>指定原始檔字元編碼(建議 UTF-8)
-parameters保留方法參數名稱至位元碼(JDK 8+,反射/除錯需求)
-proc:{none,only}控制註解處理器執行
-Xlint[:key]啟用特定警告檢查(如 unchecked, deprecation, rawtypes)

實務編譯範例

標準專案編譯

javac -d out -cp lib/* -encoding UTF-8 -source 11 -target 11 -parameters src/com/example/*.java

開發階段完整除錯資訊

javac -g -d build/classes -cp lib/* src/**/*.java

生產環境精簡輸出

javac -g:none -d dist/classes -cp lib/* src/**/*.java

進階技巧與最佳實務

  1. 模組系統(JDK 9+):使用 --module-source-path、--module 編譯模組化專案。
  2. 增量編譯:搭配建構工具,避免手動管理依賴。
  3. 編碼一致性:全專案強制 -encoding UTF-8,避免中文亂碼。
  4. 警告即錯誤:-Werror(需配合 -Xlint)提升程式碼品質。
  5. 註解處理器:Lombok、MapStruct 等需啟用 -proc:only 或預設模式。

常見問題排查

  • 找不到符號:檢查 -cp、套件宣告、import 陳述式。
  • 版本不符:-source/-target 與執行環境 JDK 版本一致。
  • 循環依賴:模組化或重構打破循環。

建議

實務專案強烈建議使用 Maven/Gradle 等建構工具管理編譯流程,手動 javac 僅適用於教學、腳本或極簡專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved