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

Eclipse 進階實用技巧大全:工作區管理、外部工具、模板與效能調校

     編輯:Java 相關知識

工作區管理篇

查看歷史工作區清單

檔案 `eclipse/configuration/.settings/org.eclipse.ui.ide.prefs` 中記錄:

  • `RECENT_WORKSPACES`:完整路徑清單 (預設最多 5 筆,由 `MAX_RECENT_WORKSPACES` 控制)
  • 顯示於 `File > Switch Workspace > Workspace Launcher` 下拉選單

啟動時指定工作區 (不寫入歷史)

eclipse.exe -data D:\Workspaces\MyProject

此模式啟動的工作區 **不會寫入** `org.eclipse.ui.ide.prefs`,適合臨時測試或腳本自動化。

編輯器效率篇

批次格式化多檔案/目錄

  1. Package Explorer 中右鍵選取檔案或**資料夾**
  2. `Source > Format` (或 `Ctrl+Shift+F`)

⚠ 陷阱提醒:

  • **無法 Undo** (無後悔藥) → 先版控提交或備份。
  • 對**資料夾**操作僅遞迴**當前層級**檔案,**不包含子目錄** (Eclipse 3.2 行為),需逐層操作或用外掛 (如 AnyEdit) 支援深度遞迴。

外部工具整合篇:以 javap 反編譯為例

將 JDK `bin/javap.exe` 整合為外部工具,一鍵查看類別位元碼。

專案結構假設

Test (Java Project)
|-- src
|   |-- test
|       |-- Test.java
|-- bin
    |-- test
        |-- Test.class

配置步驟 (Eclipse 3.2)

  1. `Run > External Tools > External Tools...` → `Program` → `New Launch Configuration`
  2. Name: `javap`
  3. Location: 瀏覽選擇 `$JAVA_HOME/bin/javap.exe`
  4. Working Directory: 留空
  5. Arguments (關鍵:使用變數實現通用性):
    -classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name}
    • `${workspace_loc}`:工作區根路徑
    • `${project_name}`:當前專案名稱
    • `${java_type_name}`:編輯器中游標所在類別完整名稱 (含套件)
  6. Apply → 工具列外部工具圖示 (紅色工具箱) 將出現 `javap`
  7. 用法:開啟 `.java` 檔 → 點擊 `javap` → Console 顯示反編譯結果

進階改良:靈活指定 Classpath

原版限制:class 檔**必須在專案 `bin/` 目錄下**。改用 `folder_prompt` 變數:

-classpath ${folder_prompt} -c ${java_type_name}

執行時會彈出資料夾選擇對話框,手動指向 class 檔根目錄 (含套件路徑),如 `Workspace\Test\bin`。自由度大增,但仍需雙重選擇 (檔案 + 路徑)。

程式碼模板篇

`Window > Preferences > Java > Editor > Templates` 管理模板。四要素:

  • **Name**:觸發關鍵字 (如 `foreach`)
  • **Context**:適用語境 (Java, Javadoc, XML...)
  • **Description**:說明
  • **Pattern**:模板內容 (含變數 `${var}`)

內建 foreach 範例 (JDK 5.0 Enhanced for-loop)

Name: foreach
Context: java
Pattern:
for (${iterable_type} ${iterable_element} : ${iterable}) {
    ${cursor}
}

變數含義:`${iterable_type}` 元素類型、`${iterable_element}` 迴圈變數名、`${iterable}` 可迭代物件、`${cursor}` 產生後游標位置。

使用:輸入 `foreach` → `Alt+/` (Content Assist) → 選擇模板 → 自動補全並游標定位於迴圈體。

常用變數速查

變數含義
${cursor}游標最終位置
${date} / ${time}當前日期/時間
${user}系統用戶名
${type_name}當前類別名稱
${method_name}當前方法名稱
${line_selection}選取的程式碼行
${word_selection}選取的單字
${enclosing_type}包含當前位置的類別名
${enclosing_method}包含當前位置的方法名

自訂模板技巧:簡單模板可少用變數,複雜模板善用 `${line_selection}` 包裹選取代碼 (如 try-catch、log 環繞)。

專案結構進階:多 Source/Output 目錄

專案右鍵 `Properties > Java Build Path > Source`:

  • `Add Folder...` / `Link Folder...`:新增 Source 目錄
  • 展開 Source 目錄 → `Output folder`:預設 `Default output folder`,可改為**專屬輸出目錄** (如 `bin-main`、`bin-test`)

直接編輯 `.classpath` 檔 (最直觀):

<classpathentry kind="src" path="src/main/java" output="bin/main"/>
<classpathentry kind="src" path="src/test/java" output="bin/test"/>
<classpathentry kind="output" path="bin"/> <!-- 預設輸出,未指定 output 的 source 使用 -->

適用場景:Maven 標準目錄結構 (`src/main/java`, `src/test/java`) 產出分離、多模組單專案結構。

啟動畫面客製化

eclipse.exe -vmargs -Dosgi.splashLocation=D:\MySplash.bmp

圖片**必須為 BMP 格式** (Eclipse 3.x 限制),解析度建議 455x300 或 500x330。

編譯器合規性:為何 Eclipse 能無 JDK 產出高版本 Class?

  • `Project > Properties > Java Compiler > JDK Compliance > Compiler Compliance Level`:可選 1.3, 1.4, 5.0, 6.0 等。
  • **核心原因**:Eclipse **不使用系統 JDK 的 `javac`**,而是內建 **JDT (Java Development Tools) 編譯器** (純 Java 實作)。JDT 能解析新語法並產出舊版位元碼,或產出新版位元碼 (需目標 JRE 支援)。
  • 系統僅安裝 JDK 1.4.2 時,Eclipse 仍可設定 Compliance 5.0/6.0 產出對應版本 Class。
  • **但執行時期仍需相容 JRE**:`Window > Preferences > Java > Installed JREs` 需添加目標版本 JRE/JDK 才能正確運行/除錯。

總結

掌握工作區切換、批次格式化陷阱、外部工具變數化、模板變數系統、多 Source/Output 目錄配置、Splash 客製化、JDT 編譯器機制,能讓 Eclipse 從「能用」進化為「順手」的生產力利器。建議將常用外部工具、模板匯出為團隊共享配置 (`File > Export > Preferences`),統一開發體驗。

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