================================================================================
編輯:
Ctrl+Shift+L 顯示所有快捷鍵
Ctrl+K 參照選中的詞(Word)快速定位到下一個
Ctrl+Shift+K 參照選中的詞(Word)快速定位到上一個
Ctrl+O 快速顯示OutLine
Ctrl+T 快速顯示當前類的繼承結構
Ctrl+Shift+X 把選中文本全部改為大寫
Ctrl+Shift+Y 把選中文本全部改為小寫
Ctrl+Shift+F 按照當前的配置文件格式化源代碼
Ctrl+L 彈出行定位框以便定位到某一行
Ctrl+Numpad_Divide
Ctrl+/(小鍵盤) 使代碼折疊可用
Ctrl+Numpad_Multify
Ctrl+*(小鍵盤) 展開當前類中的所有代碼
Ctrl+Shift+Numpad_Divide
Ctrl+Shift+/(小鍵盤) 折疊所有,如果不能全部成功折疊,
將光標移到文檔最后試著或多按幾次
折疊當前類中的所有代碼
Ctrl+1 快速修正,需要導包的時候出現導包提示界面,
Ctrl+Q 定位到最后編輯的地方
Ctrl+Shift+m 導入當前行上需要的包(add import)
Ctrl+Shift+o 導入所有需要的包(organize imports)
Shift+Enter 在當前行的下一行插入行
Shift+Ctrl+Enter 在當前行的上一行插入行
Alt+/ 語法補充快捷
Ctrl+MouseLeft 當按住Ctrl時,將Mouse移動到一個類或類的方法或屬性時,
左鍵點擊會進入到源文件內進行查看
如果沒找到源文件,而需要指定Sourece,
比如說JDK自身的src.zip文件或源文件所在的文件夾
Ctrl+/ == Ctrl+Shift+C 注釋選定行或取消注釋
Ctrl+Shift+/ 用*...... */注釋選定行
Ctrl+Shift+/ 取消/*...... */注釋
Ctrl+D 刪除當前行
Shift+< 在當前位置插入成對的尖括號:<>
Ctrl+Alt+down 復制當前行到下一行
Ctrl+Alt+up 復制當前行到上一行
Ctrl+Alt+J Join Lines連接行
Alt+down 當前行和下面一行交換位值
Alt+up 當前行和上面一行交換位值
選定光標所在的行通過用這兩個快捷各執行一次來完成
Alt+left 前一個編輯的代碼頁面或在當前頁面中上一個光標的位置
Alt+right 下一個編輯的代碼頁面或在當前頁面中下一個光標位置
(當使用了Alt+←后)
Alt+Shift+O (或點擊工具欄中的Toggle Mark Occurrences按鈕)
當點擊某個標記時可使本頁面中其他地方的此標記黃色凸顯,
并且窗口的右邊框會出現白色的方塊,點擊此方塊會跳到此標記處
Shift+Home 選定光標處到行首的內容
Shift+End 選定光標處到行尾的內容
Ctrl+Shift+Home 選定光標處到首行行首的內容
Ctrl+Shift+End 選定光標處到尾行行尾的內容
Ctrl+Shift+P 定位到與之成對匹配的括號{或)
(從前面定位后面時,光標要在匹配符之后,從后往前定位,反之)
Tab與Shift+Tab 選中要移動的代碼后,按Tab鍵右移,按Shift+Tab鍵左移
Ctrl+up
Ctrl+down 上下滾動編輯頁面
查找:
Ctrl+Shift+R 相當于Navigate->Open Resource...
輸入java源文件名或類名,會按通配的方式列出符合條件的.java源文件
Ctrl+J 正向增量查找(按下Ctrl+J文件你所輸入的每個字母,
編輯器都提供快速匹配定位到某個單詞,如果沒有,
則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,
這個功能Idea兩年前就有了)
Ctrl+Shift+J 反向增量查找(和上條相文件只不過是從后往前查)
窗口:
Ctrl+M 窗口最大化與恢復大小轉換
最大化當前的Edit或View(再按則恢復)
Ctrl+W 關閉當前Editor
Ctrl+Shift+F4 關閉所有打開的Editor
Ctrl+E 快速顯示當前Editor的下拉文檔列表
Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)
F2 當鼠標放在一個標記處出現Tooltip時候,
按下F2會鉚釘顯示的 Tooltip 框
F3 跳到聲明或定義(源文件)處
Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性
Ctrl+PgUp
Ctrl+PgDown 切換代碼窗口的各個文檔,
如果切換到頭就會打開"Show List"下拉框
在此下拉框里顯示有最近曾打開的文件,
連續按可移動選中項
對于xml文件是切換代碼和圖示窗口
Alt+Shit+w 在光標處彈出選擇view的菜單
在Package窗口下,彈出Navigator與PRoperties的選擇菜單
Alt+Shift+Q,Q 彈出"Show View"選擇界面
Alt+Shift+Q,T Show View(View: Hierarch)
Alt+Shift+Q,B Show View(View: Breakpoints)
Alt+Shift+Q,H Show View(View: Cheat Sheets)
Alt+Shift+Q,C Show View(View: Console)
Alt+Shift+Q,L Show View(View: Error Log)
Alt+Shift+Q,Z Show View(View: History)
Alt+Shift+Q,J Show View(View: Javadoc)
Alt+Shift+Q,O Show View(View: Outline)
Alt+Shift+Q,P Show View(View: Package Explorer)
Alt+Shift+Q,X Show View(View: Problems)
Alt+Shift+Q,S Show View(View: Search)
Alt+Shift+Q,Y Show View(View: Synchronize)
Alt+Shift+Q,V Show View(View: Variables)
Debug:
F5 單步調試進入函數內部
F6 單步調試不進入函數內部
F7 由函數內部返回到調用處
F8 一直執行到下一個斷點
Refactor 重構(一般以Alt+Shift開頭):
Alt+Shift+R 重命名被選中的變量
Alt+Shift+M 抽取方法
Alt+Shift+C 修改函數結構
Alt+Shift+L 抽取本地變量
Alt+Shift+F 把Class中的local變量變為field變量(MyEclipse中需要自定義)
Alt+Shift+I 合并變量(可能這樣說有點不妥Inline)
Alt+Shift+V 移動方法和變量不怎么常用
Alt+Shift+Z 重構的后悔藥(Undo)
================================================================================
Ctrl+I格式化激活的元素Format Active Elements?
Ctrl+Shift+Space提示信息即Context Information?
================================================================================
1. 更改快捷鍵設置(自定義快捷鍵)
================================================================================
代碼的自動完成:
(1) Windows->Preference->General->Keys
是管理快捷鍵的地方
在這里的type filter text處輸入Content Assist,
找到要修改的"Content Assist"
在下面會出現"Content Assist",用鼠標選中"Content Assist",
在下面的"Binding"處按自己需要的快捷鍵組合,比如Alt+/
在"When"中選擇"Editing Text"
(2) Windows->Preference->Java->Editor->Templates
這里是管理Java編輯器模板的地方
比如找到"Name"為sysout的,可以看到其"Preview:"處有:
System.out.println(${word_selection}${});${cursor}
其表示在輸入sysout后,按Alt+/就可以自動完成System.out.println();的輸入
再比如找到"Name"為main的,可以看到其"Preview:"處有:
public static void main(String[] args) {
${cursor}
}
表示在輸入main后,按Alt+/就可以在彈出的選項中選擇main方法,
自動完成main方法的格式化輸入
自定義抽取局部變量為成員變量:
Windows->Preference->General->Keys
在這里的type filter text處輸入Convert a local variable to a field,
如果看到Binding一欄處還沒有綁定快捷鍵,
就將光標移到下面的Binding文本框內,然后按Alt+Shift+F,
然后OK即可.
================================================================================
2. 整合Javadoc文檔到MyEclipse
================================================================================
在MyEclipse中左邊的"Package Explorer"窗口中選中一個JAR包
右鍵->屬性>Javadoc Location可以指定其JAR包所對應的Java文檔的位置,
其中上面的"Javadoc URL"可以點擊Browse..."選擇文檔所在的目錄,如:
javaee.jar在我電腦中的路徑是這樣的:file:/D:/Program/Sun/SDK/docs/api/
選擇完后,可以點擊Browse..."下的"Validate..."進行有效性驗證
一般所選擇的目錄下面應該有index.html或相應的package-list文件.
其中下面的"Javadoc in archive"是用來選擇一個打包文檔jar或zip的"
選中"External file"表示我們需要從外部而不是MyEclipse工作空間中選擇這個文檔,
然后點擊Archive path后的"Browse...",選擇一個有Javadoc打包的文件
比如我電腦中的路徑是這樣的"D:/Program/Sun/SDK/docs/api_doc.zip
注意從sun公司網站下載的java_ee_sdk-5_03-javadocs.zip其結構是這樣的"
java_ee_sdk-5_03-javadocs.zip |
|docs|
|api|
| |index.html
| |package-list
|
|legal
不能直接選中所下載的java_ee_sdk-5_03-javadocs.zip,而要重新打包,
將其中的index.html那一級目錄置為重新打包后的頂層目錄
或者不用重新打包,在Archive path:中找到下載的java_ee_sdk-5_03-javadocs.zip文件
再在其下面的Path within archive:中選擇相應的路徑即可
Archive path:D:/Program/Sun/SDK/java_ee_sdk-5_03-javadocs.zip
Path within archive:docs/api
這樣,當在編寫一個源Java源文件的時便將光標定位到一個類或接口上的時候,
如:
選中HttpServlet,然后按F1,在窗口右邊就會出現Help窗口,
點擊窗口中的Javadoc for 'javax.servlet.http.HttpServlet',
就可以在窗口中出現相應的API幫助文檔了.
以上的對相應的JAR包或相關框架的DOC的設置,
那么對于JDK的DOC的設置,可以使用下面的方式:
Windows->Preferences
輸入JRE,然后選中Java->Installed JREs
在右邊選中需要進行DOC文檔位置設置的JRE,然后選擇"Edit",
在出現的界面中選中相應的jar包,然后點擊右邊的"Javadoc Location..."進行設置.
================================================================================
3. 無法正常啟動
================================================================================
MyEclipse啟動遇到內部錯誤總啟動不了的時便
將Workspace下的.metadata目錄刪除重啟即可
================================================================================
4. 標記斷點:
================================================================================
在java視圖中,直接在你要設置斷點的那行的最左邊,雙擊即可,右鍵的彈出菜單中也有這個選項
Debug:
選擇debug(F11,Run菜單中的debug)即可,自動進入debug視圖,
用Step into(F5)能進入到被調用方法的跟蹤
用Step over(F6)進行單步調試
================================================================================
5. 更改 Web Project 的 Web Context-root:
================================================================================
右鍵點擊Web項目->Properties->MyEclipse->Web
在右邊的界面的Context Root中可進行更改設置.
如果在Tomcat沒運行的時便修改一個以前已部署的Web應用的Web Context-root,
此時MyEclipse會將以前此Web應用的部署刪除
如果在Tomcat運行著的時候,修改一個已部署后正在使用(存在正在訪問的客戶端)的Web應用
的Web Context-root,MyEclipse不會將此Web應用的部署刪除,而是出現一個黃色的感嘆號圖標.
由于Web Context-root被更改此部署其實已失效,
需要刪除原來的部署,重新在Tomcat中"Add Deployment..."
================================================================================
6. 文件上傳相關
================================================================================
文件上傳路徑,如果不寫相對路徑或絕對路徑
那么會存入D:/Program/Apache/apache-tomcat-6.0.18/bin目錄
================================================================================
7. MyEclipse各種相關的文件格式的編輯器字體顯示設置
================================================================================
window->preference->General->Appearence->Colors and Fonts
在其右邊有這么幾項
Basic:
Basic colors and fonts used throughout workbench dialogs and editors.
基本上指所有對話框和編輯器中的字體,包括jsp,ant的xml等文件的字體顯示.
如果需要對XML等編輯器的字體進行設置,先設置這里,
對于控制臺的字體如果這里設置大了看著不舒服,可專門到Debug下設置控制臺的字體.
CVS:
版本庫相關的顯示字體
Debug:
控制臺的輸出字體
Java:
Java源文件編輯器字體
JavaScript字體
Structured Text Editors:
結構化文本的字體,如xml,xml schemal等
Text Compare:
文本比較器的字體
View and Editor Folders:
Colors and fonts used by the default Eclipse presentation.
->Java Editor Text Font然后點Change
================================================================================
7-1. MyEclipse中UML圖中的字體的設置
================================================================================
window->preference->MyEclipse->UML1
在右邊的Nodes中,有Header font與Body font的設置.
================================================================================
8. 某一文件的存儲字符編碼設置
================================================================================
在Eclipse中不能保存中文時,可以設置一下Eclipse的編碼方式為gbk等支持中文的字符編碼方式。
可通過以下方式進行修改:
(1) Window->General->workspace
->在右邊的界面中的"Text file encoding"下設置;
(2) 鼠標右鍵點擊所需要修改的文件,或File->Properties
->在右邊的界面中的"Text file encoding"下設置;
(3) 鼠標右鍵點擊需要修改字符集編碼的文件-->proterties(Alt+Enter)-->"Resource",
在右邊窗口中的下面有"Text file encoding",
在Other處填入需要的字符集編碼,如GBK或GB18030或UTF-8等;
================================================================================
8-1. 某種格式的文件的存儲字符編碼設置
================================================================================
Window-->Preferences-->MyEclipse-->Files and Editors,
在這里,可以設置多種文件格式的Encoding,比如說JSP的,
找到JSP,在右邊就會出現一個界面,找到"The following encoding will apply:",
將Encoding:設置為自己所需要的字符編碼,比如說ISO 10646/Unicode(UTF-8)
================================================================================
9. 自定義代碼格式
================================================================================
"Windows"-->"Preferences"-->"Java"-->"Code Style"-->"Formatter"
================================================================================
10. 編輯JSP文檔,XML等文檔反應慢的問題
================================================================================
原因:
(1) 新建的工程中加入了JAVA EE的lib庫
庫中的所使用的javax.servelet.jar等這些個包中的javadoc location位置,
被設置成了官方網站的網址,
這樣每次提示的時候都要去官方網站去找doc,所以導致myeclipse會很忙
當禁用網卡或者拔掉網線的時便就不會在卡了
(2) JSP編輯器使用了MyEclipse Visual JSP Designer
最終解決方法
(1) [Window]->[Preferences]->[MyEclipse]->[JavaEnterprise Project]->[Library Sets]
[JAVA EE 5.0][J2EE 1.4]和[J2EE 1.3]下的javax.servelet.jar等包,
點開選擇[javadoc location]這個節點,雙擊后在對話框中,
把地址去掉為空或者選擇你本地javadoc地址,即可解決jsp自動提示卡和慢的問題
(2) [Window]->[Preferences]->[General]->[Editors]->[File Associations]
在右邊的上半部分列出的文件擴展名中選中*.jsp,
在右邊的下半部分列出的編輯器中選中MyEclipse JSP Editor,
點擊右邊的"Default",將這個編輯器設置為默認的編輯器,
這樣當你雙擊一個jsp文檔的時候,就會默認使用這個編輯器打開JSP文檔了.
================================================================================
11. MyEclipse版本的區別
================================================================================
blue
專為IBM開發的,功能最全的版本
M(Milestone)
Milestone版本,是比beta版還要早的版本
可以看作是下一代正式版本的一個試探性改進測試
GA(Generally Available)
正式版MyEclipse
目前(2009-12-23)8.0GA是最新的
================================================================================
12. 關閉myeclipse的Quick Update自動更新功能
================================================================================
Windows > Preferences > MyEclipse > Community Essentials,
把選項 "Search for new features on startup"的前勾去掉即可
================================================================================
13. MyEclipse內存使用相關以及JVM內存分配
================================================================================
1) PermGen space簡介
PermGen space的全稱是Permanent Generation space,
是指內存的永久保存區域。
OutOfMemoryError: PermGen space從表面上看就是內存益出,
解決方法也一定是加大內存。
說說為什么會內存益出:
* 這一部分用于存放Class和Meta的信息,Class在被Load的時候被放入PermGen space區域,
它和和存放Instance的Heap區域不同。
* GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,
所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。
這種錯誤常見在web服務器對JSP進行pre compile的時候。
如果你的WEB APP下都用了大量的第三方jar,
其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。
13_1.Tomcat內存溢出的解決方法:
手動設置MaxPermSize大小, 修改TOMCAT_HOME/bin/catalina.sh,
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建議:
將相同的第三方jar文件移置到tomcat/shared/lib目錄,這樣可以減少jar文檔重復占用內存
================================================================================
14. Eclipse 內存溢出或不能啟動或死掉的解決
================================================================================
這一段時間,Eclipse總是死掉,幾乎是稍微操作快一點就會死掉,幾分鐘一次,
搞得人郁悶至極。浪費了不少時間,在網上搜了下,看到很多朋友也出現類似的情況,
在網上求救,但是網上的辦法都只是說通過修改eclipse.ini文件來加大Eclipse的內存。
自己試了下,發現不管用。今天,又死掉了,不過爆出一個經常出現的錯誤,
大意是:permgen space導致內存溢出。
解決辦法如下:
在eclipse.ini配置文件中加上以下兩行
-XX:PermSize=128M
-XX:MaxPermSize=128M
加上上2行后,我的eclipse.ini文件如下所示:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
-vmargs
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=128M
這里的內存大小根據自己的物理內存情況來決定吧。
從網上的資料看PermSize大一點肯定更好,而且最好是設置PermSize和MaxPermSize一樣大。
理由如下: PermSize 和 MaxPermSize如果設置為相同還可以在一定程度上提高性能,
因為PermSize在不斷的變化中會需要轉移其中的數據。
如果固定了以后,則可以減少每次擴大PermSize帶來的性能損失。
15. 讓你的eclipse也能顯示JVM當前內存使用量
================================================================================
1) 在eclipse或MyEclipse目錄下建立一個文件文件名options,
文件內容:
org.eclipse.ui/perf/showHeapStatus=true
2) 有兩種方式來啟用這個配置文件:
(1) 用命令方式啟動:
D:/MyEclipse/eclipse.exe -debug options -vm javaw.exe
或者直接右鍵eclipse的快捷方式的"目標"中填入這行
(2) MyEclipse.ini中前兩行加入下面兩行:
-debug
options
修改ini文件是要注意備份。
3) 啟動eclipse,就可以看到下面的狀態欄會顯示當前JVM內存使用量
另外還可以強制進行垃圾收集。
加啟動參數和在ini中寫是一樣的,都是啟動的配置
4) eclipse對于JRE的加載順序:
首先執行 -vm 參數;如果沒有-vm參數,
則查找eclipse/jre子目錄,如果沒有找到,
eclipse最后才查找在系統中注冊的jre
-------------------------------------------------------------------------------
以下是寫在MyEclipse目錄下的Myeclipse.ini中內容的例子:
-debug
options
-vm
javaw.exe
-vmargs
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=256M
在Eclipse目錄下建一文件options(無任何擴展名),其內容為:
org.eclipse.ui/perf/showHeapStatus=true
加了這個后Eclipse會在下面狀態欄顯示垃圾回收的東東.
================================================================================
15.1 Eclipse狀態欄顯示JVM內存使用情況的改進
================================================================================
1. 打開記事本,輸入以下內容org.eclipse.ui/perf/showHeapStatus=true
然后保存于eclipse根目錄下,文件名為options,沒有文件擴展名。
2. 用-debug options -vm javaw.exe這條命令啟動eclipse:
在快捷方式的目標中寫入如下"C:/eclipse/eclipse.exe -debug options -vm javaw.exe"
3. 重啟就可以啦
================================================================================
15.2 MyEclipse8.0中狀態欄顯示JVM內存(Show heap status)使用情況
================================================================================
在MyEclpise8.0中簡單了,windows->Preferences->General
在其右邊的界面中,找到"Show heap status",并勾選上,然后確定即可;
================================================================================
16. MyEclipse7.5的Content Assist不起作用了
================================================================================
(1) 在window->Preferences->Java->Editor->Content Assist
中找到Enable auto activation,將其選項勾上;
(2) window->Preferences->Java->Editor->Content Assist->Advanced
上面的選項卡Select the proposal kinds contained in the 'default' content assist list:中,
把 Other Java Proposals 選項打上勾就可以了。
================================================================================
17. MyEclipse中啟動Tomcat,JBoss等服務器里,控制臺不顯示啟動信息
================================================================================
現象:
在控制臺為:
no consoles display at this time
但服務器已經啟動,可正常使用.
MyEclipse7.5 Tomcat6.0.18 JBoss4.2.3.GA
之前正常,今天突然就這樣了.
解決方法:
在MyEclipse菜單中window-->preferences-->Java-->Installed JREs
中,Add自己安裝的JDK,
而不要使用MyEclipse自帶的JDK"com.sun.java.jdk.win32.x86_1.6.0.013"
或者:
選擇Tomcat6.x-->JDK-->Add,點Browse找到自己的JDK的安裝路徑.
如果JDK已配置為自己安裝的了,就定位到
window-->preferences-->MyEclipse Enterprise Workbench-->Servers
隨便選擇一個服務器,比如Tomcat6.x-->JDK,
只要定位到JDK,就OK了,
或者定位到window-->preferences-->Java-->Installed JREs,
只要一點Installed JREs,就OK了.
這個是myeclipse7.5本身的問題,莫名其妙.
================================================================================
18. 去掉Show In Breadcrumb顯示出來的導航條
================================================================================
按下快捷鍵Alt+Shift+B或者右鍵單擊后選中了Show in Breadcrumb時,
就會在編輯器Editor上方出現一個快速導航條,如果想去掉它可以這樣來解決:
定位到Window -> Customize Perspective -> Commands
在"Available command groups"下面找到"Java Editor Persentation",
確定其是被勾選的.然后OK退出設置界面.
在菜單上會有一個Toggle Breadcrumb的快捷按鈕
(一般在那一長行快捷按鈕的右邊,也就是切換Java,MyEclipse等視圖按鈕的左邊),
可看見其狀態是被選中的,點擊這個按鈕圖標,即可取消(再次點擊這個按鈕圖標又出現Breadcrumb)。
================================================================================
19. 顯示被@Deprecated標注過和方法為一條橫線穿過:
================================================================================
定位到Window->Preferences->Java->Compiler->Errors/Warnings;
將其右邊的"Deprecated and restricted API"下的選項勾選上,然后OK.
================================================================================
20. 恢復不小心被刪除的文件
================================================================================
恢復文件:
選中你需要恢復文件的Project或package,鼠標右擊"Restore from Local History..."
然后直接選中你需要恢復的文件,點擊"Restore"就OK了。
恢復類語句塊:
選中你需要恢復的塊,鼠標右擊"Local History..."-->"Replace with..."
或"Restore From..."然后看清你要恢復的塊。OK就行了。
當然上面只是針對Java源文件來說的,對于WebRoot下的JSP等文件的恢復,
需要選中其文件,鼠標右擊"Replace with"->"Local History"->
================================================================================
21. 增強Content Assist的提示功能
================================================================================
(1) windows->preferences->Java->Editor->Content Assist
找到右下方的Auto-Activation(自動激活),
在Auto activation triggers for Java:的右邊框中的.后加入abc,
(加這個的目的是為了好在后面查找定位),點擊"OK",回到主界面,
(2) "File"菜單中選擇"Export...",
在彈出的界面中選擇"General->Preferences"->"Next",
在這個界面中,先勾選上"Keys Preferences"(注意先勾選),
再注意選中上方的"Export all", 在"To preference file:"框的右邊點擊"Browse...",
選擇導出路徑以及為導出文件取一個文件名(默認擴展名為.epf);
(3) 用文本編輯器打開導出的文件(*.epf),查找".abc"(前面在.后添加的abc就這作用),
定位到/instance/org.eclipse.jdt.ui/content_assist_autoactivation_triggers_java=.abc
處,在abc后面添加你想要的觸發鍵,如:
...content_assist_autoactivation_triggers_java=.abcdefghijklmnopqrstuvwxyz
保存.
(4) 再使用"File"菜單中的"Import..."導入即可使用增強的Content Assist.
================================================================================
22. 為MyEclipse添加XML文檔所使用的DTD或XML Schema,
從而使用Content Assistant可進行代碼提示:
================================================================================
(1) DTD
1) 定位到:
WIndow->Preferences->MyEclipse->XML->XML Catalog
2) 在右邊的界面中,選擇"User Specified Entries",點擊右邊的"Add...";
3) 在彈出的對話框中點擊"File System...",為Location輸入框添加DTD文件所在路徑;
4) 使用別的文本編輯器打開此DTD文件,找到相應的<!DOCTYPE ...>文檔類型聲明,
比如說Hibernate的配置文件:hibernate.cfg.xml所需要的DTD文件為:
hibernate-configuration-3.0.dtd
打開hibernate-configuration-3.0.dtd后,找到如下內容:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
4) "Key Type:"右邊的下拉框中(有三個類型:Public ID,System ID,URI),
根據hibernate-configuration-3.0.dtd中的<!DOCTYPE...>中的PUBLIC,
選擇Public ID(或者直接選擇"URI"也可);
5) "Key:"右邊的文本框中,將hibernate-configuration-3.0.dtd中的<!DOCTYPE...>
中的PUBLIC后的雙引號內的內容COPY,然后粘貼到"Key:"右邊的文本框中,
注意,COPY的內容不帶雙引號"";
(如果上面第(4)步中選擇的是URI,則需要填入的是dtd文件中的http://...部分)
6) 點擊"OK",即可看到"User Specified Entries"已有了所增加的DTD(的KEY);
同樣,hibernate-mapping-3.0.dtd這個DTD的加入,也可以如法炮制;
7) 重啟MyEclipse即可,注意如果提示不出來,
并在狀態欄的左下出現"Content Assist not available at the current location",
請在光標位置鍵入一個空格再使用Alt+/試試;
(2) XSD(XML Schema)
1) 定位到:
WIndow->Preferences->MyEclipse->XML->XML Catalog
2) 在右邊的界面中,選擇"User Specified Entries",點擊右邊的"Add...";
3) 在彈出的對話框中點擊"File System...",為Location輸入框添加XSD文件所在路徑;
4) .xsd文件添加后,在下面的Key:右邊的文本框會自動添加一個URI,如Spring的:
http://www.springframework.org/schema/beans
如果沒有自動添加,使用別的文本編輯器打開此.xsd文件,
找到相應的<xsd:schema xmlns...>名稱空間聲明,比如說spring-beans-2.5.xsd
<xsd:schema xmlns="http://www.springframework.org/schema/beans"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.springframework.org/schema/beans">
4) "Key Type:"右邊的下拉框中有Namespace Name與Schema Location兩個選項,
如果是DTD,這里有有三個類型:Public ID,System ID,URI;
將Key Type置為Schema Location
5) 在Key:右邊的文本框中的URI后面加上/,再加上此xsd的名字,
如spring-beans-2.5.xsd的key為:
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
6) 點擊"OK",即可看到"User Specified Entries"已有了所增加的xsd(的KEY);
選中此xsd條目,下面的Details為:
Location: D:/Programs/Java/spring-framework-2.5.6.SEC01/dist/resources/spring-beans-2.5.xsd
URI: file:///D:/Programs/Java/spring-framework-2.5.6.SEC01/dist/resources/spring-beans-2.5.xsd
Key Type: Schema Location
Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
7) 重啟MyEclipse即可,注意如果提示不出來,
并在狀態欄的左下出現"Content Assist not available at the current location",
請在光標位置鍵入一個空格再使用Alt+/試試;
================================================================================
23. 在Eclipse中可以通過window->Reset Perspective恢復透視圖默認設置。
================================================================================
24. @Override報錯的原因:
================================================================================
在項目的Properties-->Java Compiler的右邊視圖中,
選中"Enable project specific settings",
"Compiler compliance level:"選擇為1.6,
因為1.5中,實現某一接口的時候,方法的實現不能使用@Override標記;
1.6后無論是方法的覆寫還是方法的實現,均可使用@Override標記.
================================================================================
25. MyEclipse8.0GA中安裝插件:
================================================================================
(1) 解壓插件,一般會有下面的目錄結構:
eclipse |
|features
|plugins
早期的MyEclipse版本中,只需要將插件解壓后的eclipse文件夾COPY到
MyEclipse目錄下覆蓋(補充)到eclipse文件夾中即可,
但8.0GA中不一樣了,需要將插件解壓后的eclipse目錄中的兩個文件夾,
COPY到MyEclipse安裝路徑下的D:/Programs/Genuitec/Common目錄下,
(2) 修改bundles.info,此文件位于MyEclipse的安裝目錄下的:
D:/Programs/Genuitec/MyEclipse8.0GA/configuration
/org.eclipse.equinox.simpleconfigurator
目錄下;
在bundles.info文件的最后,增加如下格式的信息:
包名,版本號,file:/文件絕對路經,4,false
如(一個國際化資源文件編輯器插件):
jp.gr.java_conf.ussiy.app.propedit,5.3.3,file:/D:/Programs/Genuitec/Common/plugins/jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar,4,false
(3) 重新啟動MyEclipse,OK;
================================================================================
26. 防止代碼格式化時出現換行
================================================================================
辛苦寫完的代碼,被MyEclipse格式化后,
想放在一行上的東西被自動轉成了多行,
如果想避免這個情況,可:
1. Java代碼
Window->Preferences->Java->Code Style->Formatter->Edit
在彈出的界面中:
Line Wrapping->Maximum line width
這個值是設置一行的寬度,默認值為80,可以在這里把這個值根據自己需要改大;
2. HTML/JSP代碼
Window->Preferences->MyEclipse->Files and Editors->Html->Html Source->Line width
默認值為72,把這個值根據自己需要改大;
3. XML代碼
Window->Preferences->MyEclipse->Files and Editors->xml->xml Source->->Line width
默認值為72,把這個值根據自己需要改大;
================================================================================
27. MyEclipse8.0啟動時顯示啟動界面(splash.bmp)
================================================================================
在myeclipse.ini的最后一行加上:
-showsplash
-Dosgi.splashLocation=D:/Programs/Genuitec/Common/plugins/com.genuitec.myeclipse.product8_8.0.0.me200911192201/splash.bmp
其中-Dosgi.splashLocation=后面的是界面圖片的路徑;
================================================================================
28. 加入自己的環境變量:
================================================================================
如在myeclipse.ini的最后一行加上:
-DNLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
-Duser.language=zh
================================================================================
29. Tomcat內存設置方法
================================================================================
在windows中大家都知道,JAVA程序啟動時都會JVM都會分配一個初始內存和最大內存給這個應用程序。
這個初始內存和最大內存在一定程度都會影響程序的性能。
比如說在應用程序用到最大內存的時候,JVM是要先去做垃圾回收的動作,釋放被占用的一些內存。
所以想調整Tomcat的啟動時初始內存和最大內存就需要向JVM聲明,
一般的JAVA程序在運行都可以通過中-Xms -Xmx來調整應用程序(Heap堆)的初始內存和最大內存:
如:
java -Xms64m -Xmx128m a.jar
Tomcat的啟動程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內存的設置。
在Tomcat在改變這個設置有兩種方法:
1. 適合用%tomcat_home%/bin中的startup.bat腳本啟動,
需要在環境變量中加上CATALINA_OPTS這個屬性,如:
SET CATALINA_OPTS=-Xms64m -Xmx512m;
ms是最小的,mx是最大,64m,512m分別是指內存的初始和最大容量.
因為用startup.bat啟動tomcat服務器,會調用catalina.bat文件,
在Catalian.bat文件的166行"rem Execute Java with the applicable properties"
下面有加載系統設置的相關屬性。
其中就有%CATALINA_OPTS%這一項。這樣tomcat在啟動時就會將內存設置為指定的值。
2. 適合將tomcat作為系統服務啟動,這時候上面設置CATALINA_OPTS屬性的方法就不適用了,
因為作為系統服務的話,系統啟動時調用的是 %tomcat_home%/bin/tomcat5w.exe,
他讀取注冊表中的值,而不是catalina.bat的設置,因此需要修改注冊表:
解決辦法,修改注冊表:
HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions
原值為
-Dcatalina.home="C:/ApacheGroup/Tomcat 5.0"
-Djava.endorsed.dirs="C:/ApacheGroup/Tomcat 5.0/common/endorsed"
-Xrs
加入
-Xms300m -Xmx350m
重起tomcat服務,設置生效
最后,測試tomcat使用內存的大小,在jsp頁面:
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>");
out.println("Max Memory: "+lRuntime.maxMemory()+"<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>
================================================================================
30. MyEclipse中啟動Oracle連接的時候報Error:
Error while performing database login with the Oracle0.2.0.1.0 driver:
ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
大致意思是MyEclipse的環境變量或NLS配置文件與服務器端的有出入或不匹配;
查看Oracle數據庫的相關信息為:
================================================================================
解決:
Help->Aboub MyEclipse Enterprise Workbench->Installation Details->
->Configuration
找找以下相關參數(下面的參數就是啟動Oracle連接報錯的原因):
-Duser.language=en
osgi.nl=en_CN
user.country=CN
user.language=en
打開myeclipse.ini查看,看到多了一項參數:
-Duser.language=en
MyEclipse在啟動時候,語言編碼是在[MyEclipse路徑]/eclipse/eclipse.ini文件中加載的。
而國家地區編碼是從系統的區域設置中得到的。
如果MyEclipse默認啟動參數為"-Duser.language=en",
而操作系統設為"中文(中國)"也就是CN,那么MyEclipse加載后的信息就是"en_CN",
這樣就會看到osgi.nl=en_CN,這就會出現上述問題,
所以只要將語言與區域設置一致,就可以解決上述問題,
可以就系統的區域設置定為"中文(中國)"CN,修改eclipse.ini文件,
將"-Duser.language=en"修改為"-Duser.language=zh",
這樣在MyEclipse加載后的Configuration Details信息就統一為zh_CN,即"osgi.nl=zh_CN".
也可以直接在myeclipse.ini中設置:
-Duser.language=en
-Dosgi.nl=en_US
這樣在MyEclipse加載后的Configuration Details信息就統一為en_US,即"osgi.nl=en_US".
================================================================================
31. 改變MyEclipse中錯誤提示的波浪線為其他樣式:
================================================================================
window->Preferences->Ceneral->Editors->Text Editors->Annotations:
在右邊的"Annotation Types"下找到紅叉圖標的"Errors",選中,
在界面上的右邊,可以看到以下幾個Show in的復選項:
Vertical ruler 左邊框堅狀條
Overview ruler 右邊框堅狀條
Text as 文本的顯示方式
勾選上"Text as",在其右邊的下拉框中有以下幾種選項:
Text as :
Box 實線框
Dashed Box 虛線框
Highlighted 高亮
Native Problem Underline ??
Squiggles Line 波浪線
Underlined 下劃線
Vertical Bar 豎線
================================================================================
32. 改變默認的創建JSP時的pageEncoding編碼:
================================================================================
定位到:
Window->Preferences->MyEclipse->Files and Editors->JSP
在其右邊的界面中,Encoding右邊的下拉組合框中選擇需要的字符集,如:
"ISO 10646/Unicode(UTF-8)"
在其下會顯示:
IANA: UTF-8
如果選擇Chinese, National Standard
則其下會顯示:
IANA: GB18030
================================================================================
33. MyEclipse中使用正則替換批量生成刪表SQL:
================================================================================
方式一:
應用于刪除數據庫中的垃圾表:
(1) 先在sqlplus下使用如下命令查找到表名,如:
SELECT table_name from user_tables;
把表名復制到一個.sql文件中,
(2) MyEclipse打開此.sql文件,按CTRL+F調出查找替換界面,
勾選上Options中的Regular expressions,
在Find右邊的文本框填寫上: (^/W)
這表示查找每行的第一個字母,并將其緩存于GROUP1中,
在Replace With右邊的文本框中填寫上: DROP TABLE $1
表示將匹配上的字符替換為DROP TABLE 加上它本身,
其中$1表示從緩存的GROUP1中取內容;
(3) 同理在語句最后加上:
在Find右邊的文本框填寫上: (/W$)
這表示查找每行的最后一個字母,并將其緩存于GROUP1中,
在Replace With右邊的文本框中填寫上: $1 CASCADE CONSTRAINTS;
表示將匹配上的字符替換為它本身加上 CASCADE CONSTRAINTS;,
其中$1表示從緩存的GROUP1中取內容;
(4) 所有的DROP TABLE XXxxx CASCADE CONSTRAINTS;語句生成;
方式二:
(1) 先動態生成sql腳本(vi gen.sql,然后內容如下):
set head off
set feed off
set echo off
spool deltab.sql
SELECT 'DROP TABLE '||table_name||' CASCADE CONSTRAINTS;' FROM user_tables;
spool off
set head on
set feed on
(2) 執行gen.sql生成deltab.sql;
(3) 執行deltab.sql腳本;
================================================================================
34. 新建工作空間WorkSpace后,如何使用以前的工作空間設置?
================================================================================
原工作空間目錄下有相關的配置信息:
/.metadata/.plugins/org.eclipse.ui.workbench
/.metadata/.plugins/org.eclipse.ui.workbench.texteditor
將上面兩個文件夾COPY到新的工作空間覆蓋,然后再啟動MyEclispe.
如果打開新的工作空間后,項目處還有舊工作空間的項目列表,
則刪除即可,但注意不要將其從磁盤上徹底刪除,也就是只從工作空間刪除.
================================================================================
35. MyEclipse中編寫Java源文件時一個奇怪的問題[點Vertical Ruler上的紅叉后,代碼被隱藏]
================================================================================
現象描述:
如果源文件有錯,這時在錯誤行的行首左邊(行號)的左邊的Vertical Ruler(標斷點的那個隔條)上
會有一個紅叉圖標,點擊這個紅叉圖標,一般會彈出一個提示你修正的提示框,
就跟在有錯的地方使用快捷鍵CTRL+1調出Quick Fix框一樣,
但現在用鼠標點這個紅叉,快速修正框不彈出了,
替代的卻是整個Editor界面中的代碼從錯誤地方開始,被移動到Editor界面中的最頂,
在有錯的代碼的上邊的其他代碼都會看不到了(注意不是代碼被折疊Folding了,而是看不見了,
但是行號的序號卻是此行原來的樣子,只不過現在這行是頂行),關掉這個源文件,重新打開,
所有代碼又都顯示了,
現在的問題是怎樣讓鼠標點紅叉后出Quick Fix框,而不是將錯誤代碼置頂并隱藏其之前的代碼?
解決:
這是由于Eclipse中的"Show Source of Selected Element Only"功能引起的,
定位到:
Window->Customize Perspective->Tool Bar Visibility->Editor Presentation
展開Editor Presentation,找到Show Source of Selected Element Only,將其勾選,
這樣在工具欄的快捷處就會出現這個功能的圖標,如果這個圖標是凹下去的,點擊一下,
使其不被使用即可;
也可在工具欄快捷的空白處鼠標右鍵->Customize Perspective->Tool Bar Visibility...
這樣找到Show Source of Selected Element Only選項;
================================================================================
36. 解決MyEclipse中連接數據庫連接后,展開table或是view列表是不能顯示的問題:
================================================================================
現象:
MyEclipse8.0GA中,DB Browers能與數據庫建立連接,但是在試圖展開table或是view列表時是空的,
看不到已經建立的表。而且,右鍵點擊table的create table進行建表,
在提交時報錯如下:
Table could not be created
Reason:ORA-06552:PL/SQL: Compilation unit alalysis terminated
ORA-06553: PLS-553: 無法識別字符集名稱
ORA-06553: PLS-553: character set name is not recognized;
開始懷疑是MyEclipse的問題,后來想起來有對數據庫做過字符集的修改,
手動的使用update props$,修改了字符集,其實這并不會真正徹底的改變數據庫的所有字符集,
下面來確認字符集是不是真的被徹底修改:
SQL> select value$ from props$ where name='NLS_CHARACTERSET';
VALUE$
----------------------------
ZHS16GBK
SQL> SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,
DECODE( TYPE#,
1, DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
9, DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING','UNKOWN'),
96, DECODE(CHARSETFORM 5 , 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112, DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')
) TYPES_USED_IN
FROM SYS.COL$
WHERE CHARSETFORM IN (1, 2)
AND TYPE# IN (1, 9, 96, 112);
CHARACTERSET TYPES_USED_IN
---------------------------------------- -------------
WE8ISO8859P1 VARCHAR2
WE8ISO8859P1 CHAR
AL16UTF16 NCLOB
AL16UTF16 NVARCHAR2
ZHS16GBK VARCHAR2
WE8ISO8859P1 CLOB
AL16UTF16 NCHAR
已選擇7行。
上面SELECT語句的意思是:
NLS_CHARSET_NAME(CHARSETID) --> 使用NLS_CHARSET_NAME()函數,取到其ID參數的字符集名稱;
DECODE(....) TYPES_USED_IN --> 括號中的意思是:
如果TYPE#(TYPE#為第一個DECODE的第一個參數)的值是
第二個參數(1),則取其后的參數(1后面的)為函數的返回值,
否則繼承判斷TYPE#是否其與第四個參數相等,如果相等,
函數返回第五個參數的值.....,TYPE#如果均不等于
1,9,96,112,則最外的DECODE()函數返回NULL;
確實在數據庫的列屬性中仍然存在著多個字符集的設定,下面解決這個問題。
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED session;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> COL VALUE NEW_VALUE CHARSET
SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
VALUE
-------------------------------------------
ZHS16GBK
SQL> COL VALUE NEW_VALUE NCHARSET
SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
VALUE
-------------------------------------------
ZHS16GBK
這里的國家語言字符集是有問題的,往下看操作就知道了:
-- INTERNAL_USE是沒有寫在文檔中的參數,用以強制完成字符集一致化
ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
old 1: ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET
new 1: ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK
Database altered.
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET
new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
*
ERROR at line 1:
ORA-12714: invalid national character set specified
-- 運行到此處出問題了,看來國家字符集不能是ZHS16GBK的了,
-- 那為什么取的時候會取到呢?是因為早先的時候無知地使用了這個語句:
SQL> UPDATE props$ SET value$='ZHS16GBK'
WHERE name='NLS_CHARACTERSET' or name='NLS_NCHAR_CHARACTERSET';
-- 其值原來是 AL16UTF16,UPDATE后改成了ZHS16GBK,現在把其改回去先;
SQL> UPDATE props$ SET value$='AL16UTF16'
WHERE name='NLS_NCHAR_CHARACTERSET'; 2
1 row updated.
SQL> commit;
Commit complete.
-- 再次運行:
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
old 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET
new 1: ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE ZHS16GBK
*
ERROR at line 1:
ORA-12714: invalid national character set specified
-- 還是不行,看看錯誤原因:
SQL> !oerr ORA 12714
12714, 00000, "invalid national character set specified"
// *Cause: Only UTF8 and AL16UTF16 are allowed to be used as the national
// character set
// *Action: Ensure that the specified national character set is valid
-- 由此可知,Oracle 10g的NATIONAL CHARACTER SET只有2個選擇:AL16UTF16與UTF8
-- 下面直接用國家字符集名字,而不使用&NCHARSET來取:
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
Database altered.
-- 成功修改
-- 關閉數據庫并重啟:
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
ORACLE instance started.
Total System Global Area 612368384 bytes
Fixed Size 2022696 bytes
Variable Size 251658968 bytes
Database Buffers 352321536 bytes
Redo Buffers 6365184 bytes
-- 按照上面的步驟,一步一步來,一步不要少,完成以后,重新檢索col$表。
此篇文章轉自訊貓官方博客http://blog.163.com/messcat@126/blog/static/172090879201191244730471/覺得寫得很全就轉過來了,以備自己在日后的學習中方便查找!
新聞熱點
疑難解答