🚀 為什麼你的 Eclipse 沒有 Annotation Processing?完整教學+圖解

 

🧠 前言:為什麼別人的程式能跑、你的卻不行?

許多初學者在使用 Eclipse + Lombok 開發 Java 專案時,常會遇到這種情況:

同樣的專案、同樣的程式碼,

別人可以成功執行,而你的 Eclipse 卻跳出紅線說:「找不到 getter/setter」。


其實這不是你寫錯程式,而是 Eclipse 沒有啟用 Annotation Processing
簡單來說:Lombok 幫你自動產生的程式碼(像是 getSomething())沒被編譯出來。


🔍 一、什麼是 Annotation Processing?

Annotation Processing 是 Java 編譯器在編譯階段執行的一個「外掛機制」,
允許像 LombokMapStruct 這類工具自動幫你產生程式碼。

例如:

@Data public class User { private String name; private int age; }

這段程式看起來只有兩個欄位,但實際上 Lombok 會自動在編譯時產生:

public String getName() { return name; } public void setName(String name) { this.name = name; }

👉 若 Eclipse 沒開啟 Annotation Processing,就會報錯:「getName() 未定義」。


🧩 二、如何開啟 Annotation Processing

✅ 步驟一:打開設定

在 Eclipse 上方點:

Window → Preferences

✅ 步驟二:找到正確的位置

左側展開:

JavaCompilerAnnotation Processing
⚠️ 如果你沒有看到這個項目,代表 Lombok 還沒被正確載入,

請先看本文後面「第四章:讓這個選單出現」。


✅ 步驟三:啟用兩個選項

勾選:

Enable annotation processing ☑ Enable project specific settings

然後按下右下角的:

Apply and Close

🧰 三、檢查專案層級設定(很容易忽略)

即使全域設定開啟,Eclipse 的每個專案也可能有自己的設定。

右鍵點你的專案 → 選:

PropertiesJava CompilerAnnotation Processing

再勾選:

☑ Enable annotation processing

然後「Apply and Close」就行。


⚙️ 四、如果「Annotation Processing」這個選單根本沒出現?

這是最常見的情況!
原因是:Lombok 沒有被安裝進 Eclipse。


🧭 方法一:用 Lombok 安裝器快速修復

  1. 前往 Lombok 官方網站

  2. 下載最新版本的 lombok.jar

  3. 在終端機輸入:

    java -jar lombok.jar
  4. 安裝程式會自動偵測你的 Eclipse 安裝路徑
    勾選你的 Eclipse → 點 Install / Update

  5. 完成後重新啟動 Eclipse

這樣再回到:

Window → Preferences → Java → Compiler

就能看到 Annotation Processing 頁籤了!


🧭 方法二:手動修改 eclipse.ini

如果你不想重裝,也可以手動加上 Lombok。

  1. 關閉 Eclipse

  2. 找到安裝資料夾內的 eclipse.ini

  3. 在最底下加入這一行(請改成你的實際路徑):

    -javaagent:C:\tools\lombok\lombok.jar
  4. 儲存後重新開啟 Eclipse。


🧹 五、重建專案讓設定生效

啟用 Annotation Processing 後,
請到上方選單執行:

Project → Clean → Clean all projects → Build Automatically

Eclipse 會重新編譯所有程式,這時紅線應該全部消失。


🧠 六、確認是否真的啟動成功

在你的 Java 類別中輸入:

物件名稱.get

若 Eclipse 自動提示了 getXXX() 方法(即使你沒寫),
就代表 Lombok 已經生效。


💡 七、延伸:為什麼別人的電腦可以,而你的不行?

原因別人
Lombok 已安裝
eclipse.ini 有載入 lombok.jar
Annotation Processing 開啟
使用 @Data 自動生成 getter/setter✅ 正常❌ Eclipse 認為沒有這些方法

🔚 結語

📌 簡單一句話:

Lombok 只有在 Annotation Processing 啟用後,才能正常工作。


這個設定只要開一次,以後所有專案都會正常運作。
如果你常看到 getSomething()setSomething() 報錯,
九成就是因為這個開關沒開。


延伸閱讀:

留言

這個網誌中的熱門文章

🔍Vue.js 專案錯誤排查:解決 numericFields is not defined 與合併儲存格邏輯最佳化

🔎EF Core 連 Oracle 出現 ORA-00600 [kpp_concatq:2] 的完整排錯指南(含 EF Core ToString/CultureInfo 錯誤)

🛠【ASP.NET Core + Oracle】解決 ORA-00904 "FALSE": 無效的 ID 錯誤與資料欄位動態插入顯示問題