天天看點

MyEclipse使用手冊(詳細版)

原文位址:

MyEclipse使用手冊(詳細版)

作者:

志成中國

0. 快捷鍵

================================================================================

編輯:

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:ProgramSunSDKdocsapi_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:ProgramSunSDKjava_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(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:ProgramApacheapache-tomcat-6.0.18bin目錄

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:

版本庫相關的顯示字型

控制台的輸出字型

Java:

Java源檔案編輯器字型

JavaScript:

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

(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

這裡的記憶體大小根據自己的實體記憶體情況來決定吧。

從網上的資料看PermSize大一點肯定更好,而且最好是設定PermSize和MaxPermSize一樣大。

理由如下: PermSize 和 MaxPermSize如果設定為相同還可以在一定程度上提高性能,

因為PermSize在不斷的變化中會需要轉移其中的資料。

如果固定了以後,則可以減少每次擴大PermSize帶來的性能損失。

15. 讓你的eclipse也能顯示JVM目前記憶體使用量

1) 在eclipse或MyEclipse目錄下建立一個檔案檔案名options,

檔案内容:

org.eclipse.ui/perf/showHeapStatus=true

2) 有兩種方式來啟用這個配置檔案:

(1) 用指令方式啟動:

D:MyEclipseeclipse.exe -debug options -vm javaw.exe

或者直接右鍵eclipse的快捷方式的"目标"中填入這行

(2) MyEclipse.ini中前兩行加入下面兩行:

-debug

options

修改ini檔案是要注意備份。

3) 啟動eclipse,就可以看到下面的狀态欄會顯示目前JVM記憶體使用量

另外還可以強制進行垃圾收集。

加啟動參數和在ini中寫是一樣的,都是啟動的配置

4) eclipse對于JRE的加載順序:

首先執行 -vm 參數;如果沒有-vm參數,

則查找eclipsejre子目錄,如果沒有找到,

eclipse最後才查找在系統中注冊的jre

-------------------------------------------------------------------------------

以下是寫在MyEclipse目錄下的Myeclipse.ini中内容的例子:

-vm

javaw.exe

-XX:MaxPermSize=256M

在Eclipse目錄下建一檔案options(無任何擴充名),其内容為:

加了這個後Eclipse會在下面狀态欄顯示垃圾回收的東東.

15.1 Eclipse狀态欄顯示JVM記憶體使用情況的改進

1. 打開記事本,輸入以下内容org.eclipse.ui/perf/showHeapStatus=true

然後儲存于eclipse根目錄下,檔案名為options,沒有檔案擴充名。

2. 用-debug options -vm javaw.exe這條指令啟動eclipse:

在快捷方式的目标中寫入如下"C:eclipseeclipse.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=.abcdefghijklmnopqrstuvwx yz

儲存.

(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)

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="

xmlns:xsd="

http://www.w3.org/2001/XMLSchema

targetNamespace="

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:ProgramsJavaspring-framework-2.5.6.SEC01distresourcesspring -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:

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:ProgramsGenuitecCommon目錄下,

(2) 修改bundles.info,此檔案位于MyEclipse的安裝目錄下的:

D:ProgramsGenuitecMyEclips e8.0GAconfiguration

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

27. MyEclipse8.0啟動時顯示啟動界面(splash.bmp)

在myeclipse.ini的最後一行加上:

-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"

下面有加載系統設定的相關屬性。

其中就有?TALINA_OPTS%這一項。這樣tomcat在啟動時就會将記憶體設定為指定的值。

2. 适合将tomcat作為系統服務啟動,這時候上面設定CATALINA_OPTS屬性的方法就不适用了,

因為作為系統服務的話,系統啟動時調用的是 %tomcat_home%bintomcat5w.exe,

他讀取系統資料庫中的值,而不是catalina.bat的設定,是以需要修改系統資料庫:

解決辦法,修改系統資料庫:

HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationTomcat Service ManagerTomcat5Parameters JavaOptions

原值為

-Dcatalina.home="C:ApacheGroupTomcat 5.0"

-Djava.endorsed.dirs="C:ApacheGroupTomcat 5.0commonendorsed"

-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檢視,看到多了一項參數:

MyEclipse在啟動時候,語言編碼是在[MyEclipse路徑]eclipseeclipse.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中設定:

-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;,

(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.pluginsorg.eclipse.ui.workbench

.metadata.pluginsorg.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;

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> COL VALUE NEW_VALUE CHARSET

SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';

VALUE

-------------------------------------------

SQL> COL VALUE NEW_VALUE NCHARSET

SQL> SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';

這裡的國家語言字元集是有問題的,往下看操作就知道了:

-- 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

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> !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;

-- 成功修改

-- 關閉資料庫并重新開機:

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$表。

ZHS16GBK                                                                CHAR

ZHS16GBK                                                                CLOB

已選擇6行。

與之前的做一下對比:

可看出:

對于CHAR,VARCHAR2,CLOB使用了ZHS16GBK;

對于NCHAR,NVARCHAR2,NCLOB使用了AL16UTF16;

再次使用MyEclipse打開看看,一切OK了.

相關内容:

環境變量可設定為:

NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'

NLS_LANG='AMERICAN_AMERICA.US7ASCII'

改變SESSION會話的(用戶端界面顯示)語言:

錯誤寫法:

ALTER SESSION SET NLS_LANGUAGE='AMERICAN_AMERICA.ZHS16GBK';

SET NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'

正确寫法:

ALTER SESSION SET NLS_LANGUAGE=AMERICAN;

ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';

有空格使用''括起來.

有關資料庫字元集:

1. 檢視資料庫字元集

資料庫伺服器字元集:

SELECT * FROM NLS_DATABASE_PARAMETERS;

其來源于props$,是表示資料庫的字元集;

用戶端字元集環境:

SELECT * FROM NLS_INSTANCE_PARAMETERS;

表示用戶端的字元集的設定,可能是參數檔案,環境變量或者是系統資料庫,其來源于v$parameter;

會話字元集環境:

SELECT * FROM NLS_SESSION_PARAMETERS;

其來源于v$nls_parameters,表示會話自己的設定,

可能是會話的環境變量或者是alter session完成,

如果會話沒有特殊的設定,将與nls_instance_parameters一緻。

用戶端的字元集要求與伺服器一緻,才能正确顯示資料庫的非Ascii字元。

如果多個設定存在的時候,ALTER SESSION>環境變量>系統資料庫>參數檔案

字元集要求一緻,但是語言設定卻可以不同,語言設定建議用英文。

如字元集是ZHS16GBK,則NLS_LANG可以是AMERICAN_AMERICA.ZHS16GBK。

2. 修改字元集

8i以上版本可以通過ALTER DATABASE來修改字元集,但也隻限于子集到超集,

不建議修改props$表,将可能導緻嚴重錯誤。

startup nomount;

alter database mount exclusive;

alter system enable restricted session;

alter system set job_queue_process=0;

alter database open;

alter database character set zhs16gbk;

3. 怎麼檢視資料庫版本

select * from v$version

包含版本資訊,核心版本資訊,位數資訊(32位或64位)等

至于位數資訊,在Linux/unix平台上,可以通過file檢視,如:

file $ORACLE_HOME/bin/oracle

絕對不要用update系統表(props$)的方式來修改資料庫字元集.

從Oracle9i開始,Oracle在啟動時跳過了這個檢查,即使修改了錯誤的字元集,

也仍然可以啟動,資料庫啟動時會将控制檔案中的字元集更改為預設的US7ASCII.

具體可以看看以下的測試:

----------------------------------------------------------

SQL> update props$ set value$='EYGLE' where name='NLS_CHARACTERSET';

-----------------------------------------

EYGLE

-- 注意,這個EYGLE是不存在的字元集;

SQL> shutdown immediate;

SQL> startup

Total System Global Area 126948772 bytes

Fixed Size 452004 bytes

Variable Size 92274688 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

----------------------------------------------

此時警告日志中會記錄如下資訊:

Thu Jun 8 16:28:05 2006

SMON: enabling cache recovery

SMON: enabling tx recovery

Updating character set in controlfile to US7ASCII

replication_dependency_tracking turned off (no async multimaster replication found)

Completed: ALTER DATABASE OPEN

雖然啟動正常,不會報錯,但在一起實際運用中是會有問題的,特别是在有中文使用的情況下.

要徹底修改,參見上面.

37. 導入Code Style的Formatter配置與Organize Imports配置檔案

(1) Formatter(代碼風格格式):

定位到 Window->Preferences->Java->Code Style->Formatter

在右邊, 點選"Import..."按鈕,找到fromatterName.xml檔案打開導入;

(2) Organize Imports(包的導入排序):

定位到 Window->Preferences->Java->Code Style->Organize Imports

在右邊, 點選"Import..."按鈕,找到xxx.importorder檔案打開導入;

38. Copy Qualified Name 拷貝類全名

選中Java源檔案中的類名,然後滑鼠右鍵->Copy Qualified Name,

得到的結構格式是包結構格式,如下:

com.taotling.riskctrl.Access

如果是在Package Explorer中選中Java源檔案,然後滑鼠右鍵->Copy Qualified Name,

得到的格式是路徑格式,如下:

/foo_20100713/src/com/taotling/riskctrl/Access.java

如果選中一個方法,滑鼠右鍵->Copy Qualified Name,

得到的格式如下:

com.taotling.riskctrl.Access.check(CheckValue)

39. Debug的時候跳回上一個Frame重新進入被選中的Stack Frame

Eclipse 中 drop to frame 的調試技巧

解釋如下:

Select the [ Drop to Frame command ] to re-enter the selected stack frame

in the Debug View.

Note this command is only available if the current VM supports drop to frame

and the selected stackframe is not the top frame or a frame in a native method.

就是說,這個功能可以重新跳到目前方法的開始處重新執行,

并且所有上下文變量的值也回到那個時候。

不一定是目前方法,可以點選目前調用棧中的任何一個frame跳到那裡(除了最開始的那個frame)。

主要用途是所有變量狀态快速恢複到方法開始時候的樣子重新執行一遍,

即可以一遍又一遍地在那個你關注的上下文中進行多次調試(結合改變變量值等其它功能),

而不用重來一遍調試到哪裡了。

當然,原來執行過程中産生的副作用是不可逆的(比如你往資料庫中插入了一條記錄)。

這裡也說了如何使用這個功能:

http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0

引用如下:

---------------------------------------------------------------------------

You can't know where you are without knowing where you've been.

It's true in life, and it is especially true in debugging code.

Placing a breakpoint in a method to test code is usually only useful

if you know the context of how the method was executed.

The main 'Debug' view of the 'Debug' perspective shows a stack trace of the methods

that have led to the current point.

Each element in this stack trace is referred to in Eclipse as a 'frame'.

A frame is nothing more than the variable state of a method right

when the method it called was executed.

You can preview the state of a frame simply by clicking on it in the 'Debug' view.

Notice that once selected you can see the values in the variable view at the point

that the child method 'methodB' was called.

It is possible to preview the state of any frame simply

by selecting it in the 'Debug' view.

What if, however, you've decided that you missed an important state

in the execution process;

perhaps the breakpoint was in the wrong place,

or maybe you accidentally stepped over some code you wanted to inspect earlier

in the process.

Eclipse has a feature called 'Drop to Frame'.

'Drop to Frame' essentially lets you 'rewind' the execution

to the beginning of any method in the stack.

This is especially useful when performing variable modification

or code hotswapping - both features I plan to discuss in detail future articles

- traditional debugging, however,

can still benefit greatly from the drop to frame functionality.

I personally like to think of drop to frame as my emergency rewind button

when I'm dealing with traditional debugging.

To drop to a certain frame, select the frame in the 'Debug' view as before,

and right click and select the 'Drop to Frame' action.

Once done, you will back up to the beginning of the execution of the selected method.

Notice that now 'methodB' is no longer on the stack at all,

and you are now back in 'methodA'.

I highly recommend experimenting with these features;

it is something I can't do justice to;

it simply has to be experienced.

If you find yourself heading for the stop button

so you can start your debug session over,

take a breath and consider using 'drop to frame'

- it can save a huge amount of time.

40. Java Comppiler 的 compiler compliance level的含義說明

檢視Java Comppiler 界面中的"Configure Workspace Settings";

注意,如果勾選了"Enable project specific settings",

并且勾選了下面"JDK Compliance"中的

"Use compliance from execution environment on the Java Build Path"

使用的"Compiler compliance level"将會是:

compiler compliance level的含義說明:

設定編譯級别暨 Eclipse compiler compliance level為較低版本,

隻是讓編譯器相信你的代碼是相容較低版本的,

在編譯時生成的byteCode(class)相容較低版本。

這樣設定與你寫代碼時引用的JDK是沒關系的,

也就是說你在寫代碼時仍可以引用較高版本的API(這樣就可能導緻錯誤).

設定compiler compliance level為較低版本,

這樣的好處是當别人使用了較低版本的Jdk時也可以引用你寫的編譯後的代碼。

它可以保證編譯後的class檔案的版本一緻性。

但是,如果你的代碼裡面(java source)裡面調用了較高版本jdk的API.

那麼即使設定了compiler compliance level為較低版本,

在較低版本的JDK上運作你的代碼也會報錯。

是以建議在寫代碼時引用的JDK,要跟你compiler compliance level設定的版本一緻。

41. Find/Replace中設定回繞查詢

Ctrl+F彈出Find/Replace界面,勾選其"Options"中的"Wrap search"回繞查詢;

42. 快速查找哪些方法或類中引用了目前選中的屬性或方法或類或其他對象:

(1) 選中需要進行查詢的對象或屬性;

(2) 滑鼠右鍵->References->

其下有幾個選項:

Workspace (工作空間中)

Project (項目中)

Hierarchy (繼承結構中)

Working Set... (其他Working Set中)

每個均表示一定的範圍,常用的是Project,如果使用Workspace需要小心查詢範圍擴大了;

(3) 如果上面的查詢沒有結果,那就使用:

滑鼠右鍵->Declarations

這表示哪些地方聲明了此變量,同樣也有以下選項:

Workspace

Project

Hierarchy

Working Set...

(4) 一般都使用快捷鍵 Ctrl + Shift + G 查詢Worksapace範圍内,

不過這種方式需要保證隻有你用到的工程打開,否則查詢的結果有可能含有其他工程的引用;

如果Ctrl + Shift + G 查詢沒有結果,那就試試 Ctrl + G ,

有可能在别的地方再次進行了聲明而使用,是以引用查詢不到;

關于軟體版本:

Alpha:

内部測試版,一般不向外部釋出,會有很多Bug.一般隻有測試人員使用。

Beta:

測試版,這個階段的版本會一直加入新的功能。在Alpha版之後推出。

RC:(Release Candidate)

顧名思義!用在軟體上就是候選版本。系統平台上就是發行候選版本。

RC版不會再加入新的功能了,主要着重于除錯。

RTM:(Release to Manufacture)

給工廠大量壓片的版本,内容跟正式版是一樣的,不過RTM版也有出限制、評估版的。

但是和正式版本的主要程式代碼都是一樣的。

OEM:

給計算機廠商随着計算機販賣的,也就是随機版。

隻能随機器出貨,不能零售。隻能全新安裝,不能從舊有作業系統更新。

包裝不像零售版精美,通常隻有一面CD和說明書(授權書)。

RVL:

号稱是正式版,其實RVL根本不是版本的名稱。它是中文版/英文版文檔破解出來的。

EVAL:

流通在網絡上的EVAL版,與"評估版"類似,功能上和零售版沒有差別。

RTL:Retail(零售版)

真正的正式版,正式上架零售版。

在Windows的安裝盤的i386檔案夾裡有一個eula.txt,最後有一行 EULAID,就是系統的版本。

比如簡體中文正式版是EULAID:WX.4_PRO_RTL_CN,繁體中文正式版是WX.4_PRO_RTL_TW。

其中:如果是WX.開頭是正式版,WB.開頭是測試版。_PRE,代表家庭版;_PRO,代表專業版。

總結版本号:

V(Version):

即版本,通常用數字表示版本号。(如:EVEREST Ultimate v4.20.1188 Beta)

Build:

用數字或日期标示版本号的一種方式。(如:VeryCD eMule v0.48a Build 071112)

SP:

Service Pack,更新包。(如:Windows XP SP 2/Vista SP 1)

授權和功能劃分:

Trial:

試用版,通常都有時間限制,有些試用版軟體還在功能上做了一定的限制。可注冊或購買成為正式版.

Unregistered:

未注冊版,通常沒有時間限制,在功能上相對于正式版做了一定的限制。可注冊或購買成為正式版。

Demo:

示範版,僅僅內建了正式版中的幾個功能,不能更新成正式版。

Lite:精簡版

Full version:完整版,屬于正式版。

語言劃分:

SC :Simplified Chinese簡體中文版。

CN :簡體中文版

GBK :簡體中文漢字内碼擴充規範版。

TC :Traditional Chinese繁體中文版。

CHT :繁體中文版

BIG5:繁體中文大五碼版。

EN :英文版

Multilanguage:多語言版

UTF8:Unicode Transformation Format 8 bit,對現有的中文系統不是好的解決方案。

開發階段劃分:

α(Alpha)版:

内測版,内部交流或者專業測試人員測試用。Bug較多,普通使用者最好不要安裝。

β(Beta)版:

公測版,專業愛好者大規模測試用,存在一些缺陷,該版本也不适合一般使用者安裝。

γ(Gamma)版:

相當成熟的測試版,與即将發行的正式版相差無幾。

RC版:

Release Candidate。

Release Candidate 的縮寫,意思是釋出倒計時,候選版本,處于Gamma階段,

該版本已經完成全部功能并清除大部分的BUG。

到了這個階段隻會除BUG,不會對軟體做任何大的更改。

從Alpha到Beta再到Gamma是改進的先後關系,但RC1、RC2往往是取舍關系。

Final:正式版。

其他版本

Enhance :增強版或者加強版 屬于正式版1

Free :自由版

Release :發行版 有時間限制

Upgrade :更新版

Retail :零售版

Cardware:屬共享軟體的一種,隻要給作者回複一封電郵或明信片即可。

(有的作者并由此提供注冊碼等),目前這種形式已不多見。/ S

Plus :屬增強版,不過這種大部分是在程式界面及多媒體功能上增強。

Preview :預覽版

Corporation & Enterprise :企業版

Standard:标準版

Mini :迷你版也叫精簡版隻有最基本的功能

Premium :貴價版

Professional :專業版

Express :特别版

Deluxe :豪華版

Regged :已注冊版

Rip :是指從原版檔案(一般是指CD光牒或CD光牒鏡像檔案)直接将有用的内容(核心内容)分離出來,

剔除無用的文檔,例如PDF說明檔案啊,視訊示範啊之類的東西,也可以算做是精簡版.

但主要内容功能是一點也不能缺少的!

另:DVDrip是指将視訊和音頻直接從DVDCD光牒裡以檔案方式分離出來。

RTM 版:這基本就是最終的版本,英文是 Release To Manufactur,意思是釋出到生産商。

Original Equipment Manufacturer (OEM) 

You may license products through an Original Equipment Manufacturer (OEM).

These products, such as Windows operating systems,

come installed when you purchase a new computer.

OEM軟體是給電腦生産廠的版本,無需多說。 

Full Packaged Product (FPP)/Retail

Physical, shrink-wrapped boxes of licensed product that can be purchased

in a local retail store or any local software retailer.

FPP就是零售版(盒裝軟體),這種産品的CD光牒的卷标都帶有"FPP"字樣,

比如英文WXP Pro的FPP版本的CD光牒卷标就是WXPFPP_EN,其中WX表示是Windows XP,

P是Professional(H是Home),FPP表明是零售版本,EN是表明是英語。

獲得途徑除了在商店購買之外,某些MSDN使用者也可以得到。

Volume Licensing for Organizations (VLO)

You may enjoy potentially significant savings

by acquiring multiple product licenses.

Depending on the size and type of your organization.

團體批量許可證(大量采購授權合約),這是為團體購買而制定的一種優惠方式。

這種産品的CD光牒的卷标都帶有"VOL"字樣,取"Volume"前3個字母,以表明是批量,

比如英文WXP Pro的VOL版本的CD光牒卷标就是WXPVOL_EN,其中WX表示是Windows XP,

P是Professional(VOL沒有Home版本),VOL表明是團體批量許可證版本,EN是表明是英語。

獲得途徑主要是集團購買,某些MSDN使用者也可以得到。

在很多軟體下載下傳的時候,你會發覺辨別為GA或者CRx等。比如MySQL和JBoss都采用這種辨別。

那什麼是GA呢。GA是Generally Available的縮寫,

意思是開發團隊認為該版本是穩定版(有的軟體可能會辨別為stable版或者production版,

其意思和GA相同),可以在較為關鍵的場合使用。

如果你是要用在生産中的軟體,或者你是一個新手,那麼你最好選用GA版本。

這是測試最為充分,最為穩定的版本。

RC就是Release Candidate(候選版本)的簡稱

GA:General Availability,正式釋出的版本,在國外都是用GA來說明release版本================================================================================

配置檔案(eclipse.ini或myeclipse.ini):

2009-06-16所有Eclipse,MyEclipse 都 Could not create the Java virtual machine.

頭天還能正常使用,配置如下:

(1) MyEclipse7.0/myeclipse.ini

-startup

Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar

--launcher.library

Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731

-clean

-configuration

configuration

D:ProgramSunJavajdk1.6.0_13binjavaw.exe

-Xms696M

-Xmx696M

-XX:+UseParallelGC

現在改為:

-Xms648M -->修改處

-Xmx648M -->修改處改為649就不行,比原來少796-648=48M

-->此時JVM所使用記憶體總量: 648(-Xmx)+128(-XX:MaxPermSize)=776M

根據上面能使用的記憶體總量776M,最後這樣配置設定

-Xms520M

-Xmx520M

-XX:PermSize=256M

(2) EclipseGanymedeJee.v3.4.0/eclipse.ini

====================

256M

-framework

pluginsorg.eclipse.osgi_3.4.0.v20080605-1900.jar

-Dosgi.requiredJavaVersion=1.5

-Xms40m

改為:

-Xmx492m //修改處493m都不行比原來少512-492=20M

(3) MyEclipse 6.5.1-GA-20080715/eclipse/elipse.ini

============================================================================

com.genuitec.myeclipse.product.ide

1024m

-Xms760m

-Xmx760m

-XX:PermSize=64M

-XX:MaxPermSize=64M

-Xms712m

-Xmx712m //改為713都不行比原來少760-712=48M

MyEclipse7.5配置

原配置為:

../Commonpluginsorg.eclipse.equinox.launcher_1.0.101.R34x_v20081125.jar

../Commonpluginsorg.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731

D:ProgramGenuitecCommonbin arycom.sun.java.jdk.win32.x86_1.6.0.013jrebinclientjvm.dll

-XX:MaxPermSize=256m

-XX:ReservedCodeCacheSize=64m

修改為:

----------------------------------------------------------------------------

-Xms648m

-Xmx648m

-XX:PermSize=128m

-XX:MaxPermSize=128m

-XX:ReservedCodeCacheSize=128m

MyEclipse8.0GA配置

(1) 2009-12-01--------------------------------------------------------------

../Common/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar

../Common/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

-install

D:/Programs/Genuitec/MyEclipse8.0GA

D:/Programs/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll

這個配置啟動會出現dos視窗,不會出現啟動的圖檔畫面,

是為了顯示JVM的heap status狀态條,其實用不這樣做,

隻需定位到windows->Preferences->

(2) 2010-03-03--------------------------------------------------------------

-Xms512m

-XX:PermSize=256m