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