1. 程式人生 > >Eclipse的使用:快捷鍵、設定、除錯

Eclipse的使用:快捷鍵、設定、除錯

一、Eclipse常用快捷鍵

1. Source選單可以用快捷鍵 Alt+S 調出,實際上就是選單快捷鍵,Source的功能還是挺常用的;
2. Alt+/,程式碼補全,很常用的快捷鍵,比如輸入“main”,然後用Alt+/就直接給出完整的main方法,輸入syso然後用Alt+/就直接給出System.out.pringln()等等。
3. Ctrl+1,快速修復快捷鍵,當代碼出現黃色或紅色下劃線(也就是存在警告或錯誤)時,游標在相應的程式碼上,使用快捷鍵會彈出修復選項;當然也有部分程式碼補全功能,比如new String("asdf");程式碼處使用Ctrl+1,選擇Assign Statement to new local variable/Assign Statement to new Field就可以新增本地變數/域變數的宣告,其他有返回值的方法呼叫同樣適用(也可以用Ctrl+2,停頓一下然後選擇L或F來達到同樣的效果)。
4. Ctrl+2,停頓一下後會出現小選單,包括F-Assign to Field,L-Assign to Local,M-Extract to Method,R-Rename,不過這些功能都可以通過其他快捷鍵實現,小停頓可能對某些急性子有點忍不了。
5. Ctrl+F11,執行。
6. Ctrl+Shift+O,整理imports,會自動根據程式碼內容新增所需的或刪除不用的import語句。
7. 註釋快捷鍵:①Ctrl+/,新增或刪除選中行的“//”註釋;②Ctrl+Shift+/新增選中內容的“/*...*/”註釋,Ctrl+Shift+\刪除“/*...*/”註釋。
8. F3或按Ctrl點選滑鼠左鍵,調到宣告或定義的地方。
9. F4顯示類或介面繼承或實現情況,可以選擇只檢視其父類或子類。或者在選中某個類的情況下,按Ctrl+T,臨時檢視繼承關係。
10.Ctrl+Shift+R,查詢資原始檔;Ctrl+Shift+T查詢類或介面。
11.Alt+左右箭頭,分別向前或向後瀏覽檢視記錄,尤其是在F3或按Ctrl點選滑鼠左鍵一層層下鑽的時候可以Alt+左箭頭向前查詢剛才經過的位置;Alt+上下箭頭,編輯用,可以將所選中行上移或下移。
12.Ctrl+Q,跳轉到上次修改位置。
13.Ctrl+D,刪除行。
14.Ctrl+O,顯示某個類的概要(Outline)。
15.F2,顯示類或方法資訊。
16.Ctrl+F,當前檔案搜尋;Ctrl+H,高階搜尋。
17.Alt+Shift+R,修改變數或方法名。
18.Shift+Enter,在游標所在行下新增一行,類似於vim的o,也挺常用。
19.Ctrl+M,最大化當前視窗。
20.Ctrl+L,跳到某行。

更多內容請見附錄,還有一些公共的快捷鍵比如(Ctrl+C複製/Ctrl+V貼上/Ctrl+Z回退/F2命名/F5重新整理等等)就不特別提了。

二、Eclipse常用設定

1.  編碼設定

假設將Eclipse整體編碼設定為UTF-8則需要設定windows->Preferences...general->Workspace,右側 Text file encoding,選擇Other,改變為UTF-8,以後新建立工程其屬性對話方塊中的Text file encoding即為UTF-8。

eclipse 中使用模板新建 JSP,xhtml等檔案時,預設的編碼為:ISO-8859-1。 ISO-8859-1 編碼對於中文的顯示是不支援的,如果要支援簡體中文,則編碼方式應為 GBK 或者 GB2312 或者 UTF-8(推薦) 等。設定方法window -> preferences -> 在type filter text中輸入jsp -> 選擇下面的jsp Files-> 選擇creating files組中的encoding 為UTF-8編碼,其他類似。

2. 取消單詞拼寫檢查

選單 window -> General -> Editors -> Text Editors -> Spelling -> 把右邊的Enable spell checking的勾去掉就行了,也就是取消單詞的拼寫檢查,屬於Eclipse優化設定,可選。

3. 去除不需要載入的模組

通過Windows -> Preferences -> General -> Startup and Shutdown,這個時候在右側就顯示出了Eclipse啟動時載入的模組,可以根據自己的實際情況去除一些模組,以加快Eclipse載入速度,屬於Eclipse優化設定,可選。

通常可關掉沒用的啟動項:

WTP webservice UI plug-in,Equinox Provisioning platform Automatic Update Support等。

4. 取消在啟動時自動驗證專案配置檔案

預設情況下Eclipse在啟動的時候會自動驗證每個專案的配置檔案,這是一個非常耗時的過程,可以在Preferences視窗依次選擇Validation,然後在右側的Validator列表中只保留 Manual 項就可以了。如果需要驗證的時候只需要選中檔案,然後右鍵選擇 MyEclipse - Run Validation就可以了。build下只留 classpath dependency Validator。

手工驗證方法:在要驗證的檔案上,單擊滑鼠右鍵–>myeclipse–>run validation。

5. 調整Eclipse記憶體大小

如果經常碰到Eclipse執行時報記憶體不足的錯誤(比如Heap或PermGen不足),可修改Eclipse安裝目錄的eclipse.ini檔案,加大JVM的非堆記憶體:

開啟eclipse配置檔案eclipse.ini,更改-Xmx(其數值代表jvm可以使用的最大記憶體數):

-Xms256m

-Xmx1024m

6. 修改Eclipse編輯JSP,html等頁面時的編輯工具

由於Eclipse預設使用Web Editor開啟頁面檔案,所見即所得,比較卡,真正開發時其實一般只看程式碼,就可以修改預設編輯器:

Window -> perferences -> General -> Editors -> File Associations 

在File types 中選擇 .jsp/.htm/.html > 在Associated editors 中將自己要用的設定為預設,其他檔案類似。

7. 設定字型

預設的編輯器裡,中文字型顯示特別小,需要改一下字型。在window->perferences->General->Appearance->Colors and Fonts,右側雙擊Basic下的Text Font 修改,這裡推薦Consolas和微軟雅黑混合字型,對程式碼和中文字型顯示起來都很漂亮,這是我必改的配置。

8. 顯示java 型別,是介面還是抽象類還是列舉等

勾選General->Appearance->Lable Desirations的Java Type Indicator。

9. 修改自動提示功能

修改Eclipse的程式碼自動提示功能 Windows->Preferences->Java->Editor->Content Assist 

Auto Activation Delay 預設值為200(單位是毫秒)也就是說在打“.”之後停留200毫秒才能出現智慧感知的提示。那麼將它修改為20之後提示速度明顯上升;

Auto Activation triggers for java 預設為“.”,可以改成“.abcdefghijklmnopqrstuvwxyz(,”,也就是在輸入這些字元後都進行程式碼補全提示,看個人喜好慎用。

三、Eclipse常用功能

1. 選單Source下有很多快速生成程式碼的功能比如

① 生成get、set方法 Source->Generate Getters and Setters

② 生成構造方法 Source->Generate Constructor Using Fields/Generate Constructors from Superclass

③ 新增Try-catch塊 Source->Surround With->Try/Catch Block

④ 程式碼格式化 Source->Format

2. 匯入匯出 

① 匯入Existing Projects:File->Import->General->Existing Projects into Workspace

② 匯入Maven工程:File->Import->Maven->Existing Maven Projects

③ 將Java程式編譯打包生成jar並匯出

File->Export->Java->JAR File          必須按照規範且無錯的情況下才可以成功生成 

④ 生成程式的API

File->Export->Java->Javadoc           必須按照規範且無錯的情況下才可以成功生成  

或者

Project->Generate Javadoc

(Java doc註釋:輸入字元“/**”,然後按回車鍵)。

3. 安裝外掛

① 線上安裝,從外掛的官方網站找到更新地址。在Eclipse的Help->Install New Software...,開啟對話方塊,在Work with:處貼上更新地址,然後點選“Add...”按鈕,在彈出的小對話方塊中填上自己能理解的Name然後OK,待Eclipse解析出地址後,點選下一步安裝即可。

② 離線安裝,下載外掛包到本地,在Eclipse的Help->Install New Software...,開啟對話方塊,直接點選“Add...”按鈕,在小對話方塊中點選Archive...,選中下載的外掛包,填上自己能理解的Name然後OK,待Eclipse解析出內容後,點選下一步安裝即可。

4. Build path使用說明

① Source頁籤,用來設定"source folder"與"output folder"的,一般就採用以上eclipse的預設設定;

設定"source folder"與"output folder":source folder - 存放.java原始檔的根目錄;output folder - class編譯輸出的根目錄;

    • 純“java project“中,一般把"src"設定為source folder,把bin設定為output folder;
    • “web project”中,一般把"src"設定為source folder,把WEB-INF/classes設定為output folder;(以上為eclipse的預設設定)

如果不設定output folder,預設輸出路徑為:與.java檔案同一個資料夾下。可以使用“add folder”選項設定“工程名”下的任意資料夾做為“source folder”或者可以使用“Link Source”選項匯入任意資料夾做為“source folder”;

② Projects是指是否關聯到其他專案進行相關的搜尋,這個類似於path路徑的搜尋,有個反問。

③ Libraries是用來管理類庫的,包括外部類庫的新增和刪除。

④ Order and Export 呼叫優先順序的問題,越在上邊呼叫優先順序越高。例如,在同包同類名的情況下,將優先從上到下執行搜尋呼叫,打勾與不打勾的區別在於匯出jar包時是否將這個庫的內容也打包到jar中,勾為包含,不勾為不包含。

四、Eclipse常用除錯功能

1. 除錯程式碼位置的控制

① Step Into (F5) 跳入;
② Step Over (F6) 跳過;
③ Step Return (F7) 執行完當前method,然後return跳出此method;
④ resume (F8) 重新開始執行debug,一直執行直到遇到breakpoint;


⑤ step Filter:以上4中情況中,Step不會跳到設定到Filter中的程式碼,比如你在除錯大量使用到Collection的程式碼的時候,又不想總是調到jdk的程式碼中,就可以設定java.util到Filter(設定Filter:window-preferences-java-Debug-step Filtering),那麼在除錯過程中會自動略過java.util中的程式碼。

⑥ 執行過程中可以通過選擇某個棧層,然後點選Drop to Frame按鈕,到達相應的frame層,可以用於“小步返回,重複測試”。

假設有如下程式碼:

斷點設定在第24行,然後開始除錯模式,由於printStr方法被main方法呼叫,所以棧層次是這樣的

這時按F6執行一步(System.out.println(str);語句),則打印出asdf;然後再上圖所示的位置選中printStr所在的frame,點選Drop to Frame按鈕,除錯位置會跳回到printStr方法開始,再次按F6,還可以打印出asdf;然後在variables檢視修改str的值(下面會說到)為“aaaa”,再點選Drop to Frame按鈕,並按F6執行,可以看到打印出aaaa,從而可以實現重複除錯。



2. 檢視

① Expression”檢視:watch 將某個表示式新增到“Expression”檢視中,實時地監視物件、方法或變數的變化(注意:表示式是可執行的,比如將表示式str=="123"錯寫成賦值語句str="123",那麼是會改變被賦值的變數的內容的)。

② variables檢視:除錯過程中顯示當前有效的變數的值,在variables 檢視選擇變數點選右鍵選擇change value可以臨時改變變數的值來進行快速除錯。

③ breakpoints檢視:我們常說的斷點(breakpoints)是指line breakpoints,除了line breakpoints,還有其他的斷點型別:field(watchpoint)breakpoint,method breakpoint ,exception breakpoint。

3. 關於breakpoint

① breakpoints型別

    • field breakpoint,也叫watchpoint(監視點),當成員變數被讀取或修改時暫掛;
    • method breakpoint,進入/離開此方法時暫掛(Run-method breakpoint);
    • Exception breakpoint,捕獲到Execption時暫掛。

② breakpoints屬性:

    • hit count, 設定執行N次後暫停,適合程式中的for迴圈(Breakpoints檢視下設定,或在斷點上右鍵選擇Breakpoint Preferences,進入對話方塊設定hit count的次數);
    • enable condition, 遇到符合你輸入條件(為ture/改變時)就暫掛;
    • suspend thread,暫掛此執行緒;
    • suspend VM,暫掛虛擬機器;


附:

1.  Eclipse專案中的路徑問題

 ① 獲取系統根目錄

System.getProperty("user.home");

例如輸出,C:\Users\liukang

 ② 獲取工程目錄

System.getProperty("user.dir");

例如輸出,D:\workspaces\eclipse\testpath

 ③ 新建檔案,預設位於工程目錄

new File("xxx.txt").getAbsolutePath();

例如輸出,D:\workspaces\eclipse\testpath

  ④ 配置檔案路徑

ApplicationContext context = new ClassPathXmlApplicationContext("Config.xml");

.xml, .properties等,預設還是從“工程目錄”去找的

1) 堅決不推薦用絕對路徑;

2) 或者,將log4j檔案置於bin/目錄下:

      •  程式碼中,PropertyConfigurator.configure("bin/log4j.properties");
      •  程式碼中,PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));
      •  注意,必須位於bin直接目錄下,不可位於bin更深層的目錄當中。

 ⑤ 查詢某類的.class檔案所在目錄

Main.class.getResource(“”);

例如輸出,D:\workspaces\eclipse\testpath\bin\com\kang\test\

注意,查詢包上級路徑,只需將引數改作“/”

  ⑥ 查詢thread上下文所在目錄

Thread.currentThread().getContextClassLoader().getResource("");

例如輸出,D:\workspaces\eclipse\testpath\bin\

 ⑦ 查詢某類的classloader所在目錄

Main.class.getClassLoader().getResource("");

例如輸出,D:\workspaces\eclipse\testpath\bin\

 ⑧查詢classloader所在目錄

ClassLoader.getSystemResource("");

例如輸出,D:\workspaces\eclipse\testpath\bin\

2. Eclipse快捷鍵大全

Ctrl+1 快速修復

Ctrl+D: 刪除當前行 

Ctrl+Alt+↓ 複製當前行到下一行(複製增加)

Ctrl+Alt+↑ 複製當前行到上一行(複製增加)

Alt+↓ 當前行和下面一行互動位置(特別實用,可以省去先剪下,再貼上了)

Alt+↑ 當前行和上面一行互動位置(同上)

Alt+← 前一個編輯的頁面

Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)

Alt+Enter 顯示當前選擇資源(工程,or 檔案 or檔案)的屬性

Shift+Enter 在當前行的下一行插入空行(這時滑鼠可以在當前行的任一位置,不一定是最後)

Shift+Ctrl+Enter 在當前行插入空行(原理同上條)

Ctrl+Q 定位到最後編輯的地方

Ctrl+L 定位在某行 (對於程式超過100的人就有福音了)

Ctrl+M 最大化當前的Edit或View (再按則反之)

Ctrl+/ 註釋當前行,再按則取消註釋

Ctrl+O 快速顯示 OutLine

Ctrl+T 快速顯示當前類的繼承結構

Ctrl+W 關閉當前Editer

Ctrl+K 參照選中的Word快速定位到下一個

Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)

Ctrl+/(小鍵盤) 摺疊當前類中的所有程式碼

Ctrl+×(小鍵盤) 展開當前類中的所有程式碼

Ctrl+Space 程式碼助手完成一些程式碼的插入(但一般和輸入法有衝突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)

Ctrl+Shift+E 顯示管理當前開啟的所有的View的管理器(可以選擇關閉,啟用等操作)

Ctrl+J 正向增量查詢(按下Ctrl+J後,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)

Ctrl+Shift+J 反向增量查詢(和上條相同,只不過是從後往前查)

Ctrl+Shift+F4 關閉所有開啟的Editer

Ctrl+Shift+X 把當前選中的文字全部變味小寫

Ctrl+Shift+Y 把當前選中的文字全部變為小寫

Ctrl+Shift+F 格式化當前程式碼

Ctrl+Shift+P 定位到對於的匹配符(譬如{}) (從前面定位後面時,游標要在匹配符裡面,後面到前面,則反之)

重構

Alt+Shift+R 重新命名 (是我自己最愛用的一個了,尤其是變數和類的Rename,比手工方法能節省很多勞動力)

Alt+Shift+M 抽取方法 (這是重構裡面最常用的方法之一了,尤其是對一大堆泥團程式碼有用)

Alt+Shift+C 修改函式結構(比較實用,有N個函式呼叫了這個方法,修改一次搞定)

Alt+Shift+L 抽取本地變數( 可以直接把一些魔法數字和字串抽取成一個變數,尤其是多處呼叫的時候)

Alt+Shift+F 把Class中的local變數變為field變數 (比較實用的功能)

Alt+Shift+I 合併變數(可能這樣說有點不妥Inline)

Alt+Shift+V 移動函式和變數(不怎麼常用)

Alt+Shift+Z 重構的後悔藥(Undo)

編輯

全域性 查詢並替換 Ctrl+F 

文字編輯器 查詢上一個 Ctrl+Shift+K 

文字編輯器 查詢下一個 Ctrl+K 

全域性 撤銷 Ctrl+Z 

全域性 複製 Ctrl+C 

全域性 恢復上一個選擇 Alt+Shift+↓ 

全域性 剪下 Ctrl+X 

全域性 快速修正 Ctrl1+1 

全域性 內容輔助 Alt+/ 

全域性 全部選中 Ctrl+A 

全域性 刪除 Delete 

全域性 上下文資訊 Alt+?

Alt+Shift+?

Ctrl+Shift+Space 

Java編輯器 顯示工具提示描述 F2 

Java編輯器 選擇封裝元素 Alt+Shift+↑ 

Java編輯器 選擇上一個元素 Alt+Shift+← 

Java編輯器 選擇下一個元素 Alt+Shift+→ 

文字編輯器 增量查詢 Ctrl+J 

文字編輯器 增量逆向查詢 Ctrl+Shift+J 

全域性 貼上 Ctrl+V 

全域性 重做 Ctrl+Y 

檢視

全域性 放大 Ctrl+= 

全域性 縮小 Ctrl+- 

視窗

全域性 啟用編輯器 F12 

全域性 切換編輯器 Ctrl+Shift+W 

全域性 上一個編輯器 Ctrl+Shift+F6 

全域性 上一個檢視 Ctrl+Shift+F7 

全域性 上一個透檢視 Ctrl+Shift+F8 

全域性 下一個編輯器 Ctrl+F6 

全域性 下一個檢視 Ctrl+F7 

全域性 下一個透檢視 Ctrl+F8 

文字編輯器 顯示標尺上下文選單 Ctrl+W 

全域性 顯示檢視選單 Ctrl+F10 

全域性 顯示系統選單 Alt+- 

導航

Java編輯器 開啟結構 Ctrl+F3 

全域性 開啟型別 Ctrl+Shift+T 

全域性 開啟型別層次結構 F4 

全域性 開啟宣告 F3 

全域性 開啟外部javadoc Shift+F2 

全域性 開啟資源 Ctrl+Shift+R 

全域性 後退歷史記錄 Alt+← 

全域性 前進歷史記錄 Alt+→ 

全域性 上一個 Ctrl+, 

全域性 下一個 Ctrl+. 

Java編輯器 顯示大綱 Ctrl+O 

全域性 在層次結構中開啟型別 Ctrl+Shift+H 

全域性 轉至匹配的括號 Ctrl+Shift+P 

全域性 轉至上一個編輯位置 Ctrl+Q 

Java編輯器 轉至上一個成員 Ctrl+Shift+↑ 

Java編輯器 轉至下一個成員 Ctrl+Shift+↓ 

文字編輯器 轉至行 Ctrl+L 

搜尋

全域性 出現在檔案中 Ctrl+Shift+U 

全域性 開啟搜尋對話方塊 Ctrl+H 

全域性 工作區中的宣告 Ctrl+G 

全域性 工作區中的引用 Ctrl+Shift+G 

文字編輯

文字編輯器 改寫切換 Insert 

文字編輯器 上滾行 Ctrl+↑ 

文字編輯器 下滾行 Ctrl+↓ 

檔案

全域性 儲存 Ctrl+X 

Ctrl+S 

全域性 列印 Ctrl+P 

全域性 關閉 Ctrl+F4 

全域性 全部儲存 Ctrl+Shift+S 

全域性 全部關閉 Ctrl+Shift+F4 

全域性 屬性 Alt+Enter 

全域性 新建 Ctrl+N 

專案

全域性 全部構建 Ctrl+B 

原始碼

Java編輯器 格式化 Ctrl+Shift+F 

Java編輯器 取消註釋 Ctrl+\ 

Java編輯器 註釋 Ctrl+/ 

Java編輯器 新增匯入 Ctrl+Shift+M 

Java編輯器 組織匯入 Ctrl+Shift+O 

Java編輯器 使用try/catch塊來包圍 未設定,太常用了,所以在這裡列出,建議自己設定。

也可以使用Ctrl+1自動修正。 

執行

全域性 單步返回 F7 

全域性 單步跳過 F6 

全域性 單步跳入 F5 

全域性 單步跳入選擇 Ctrl+F5 

全域性 除錯上次啟動 F11 

全域性 繼續 F8 

全域性 使用過濾器單步執行 Shift+F5 

全域性 新增/去除斷點 Ctrl+Shift+B 

全域性 顯示 Ctrl+D 

全域性 執行上次啟動 Ctrl+F11 

全域性 執行至行 Ctrl+R 

全域性 執行 Ctrl+U