Eclipse Weed
在使用Eclipse的過程中一些小知識(shí)的收集,文中的所有描述均在Eclipse3.2環(huán)境下。(2006.11.13
最后更新
)Eclipse曾經(jīng)使用過的Workspace的列表
文件eclipse\configuration\.settings\org.eclipse.ui.ide.prefs的RECENT_WORKSPACES參數(shù)記錄了該eclipse曾經(jīng)使用過的工作區(qū)(它們的全路徑)。MAX_RECENT_WORKSPACES參數(shù)設(shè)置了需要被記錄的工作區(qū)的最多個(gè)數(shù)(默認(rèn)值為5)。這些路徑的列表會(huì)顯示在主菜單File-->Switch Workspace...-->Workspace Lanucher中的Workspace下拉列表框內(nèi)。
在啟動(dòng)時(shí)使用指定的工作區(qū)
eclipse.exe -data Workspace_Full_Path
注意:使用這種方法使用的工作區(qū)不會(huì)記錄到 org.eclipse.ui.ide.prefs (見上一主題)中。
這可能是因?yàn)樵趩?dòng)時(shí)已經(jīng)明確了工作區(qū),也就不需要在 Workspace Lanucher 選擇了,故Eclipse不將該信息記錄到配置文件中。
Format多個(gè)文件
這一點(diǎn)其實(shí)很簡(jiǎn)單,右鍵點(diǎn)擊需要被格式化的文件(或它所在的目錄)-->Source-->Format,即可。
注意:
[1]由于該操作沒有“后悔藥”(即不能做undo),所以在做之前要謹(jǐn)慎。
[2]如果是右鍵點(diǎn)擊某個(gè)目錄,那么該操作只能影響該目錄當(dāng)前路徑下的文件,它子目錄中的文件不會(huì)被格式化。
配置外部工具(External Tools)
根據(jù)Eclipse的幫助可以知道配置外部工具的一般方法(請(qǐng)見Eclipse3.2幫助)。但對(duì)于配置某個(gè)特定的外部工具還需要區(qū)別對(duì)待。JDK/bin中自帶的javap.exe可以分解class文件,幫助我們理解程序的執(zhí)行過程,是一個(gè)十分有用的工具。下面就以把javap.exe工具配置為外部工具作為例子進(jìn)行講述。
假設(shè)有目錄結(jié)構(gòu):
Test
|--src
| |--test
| |--Test.java
|
|--bin
|--test
|--Test.class
Test是Eclipse的Java工程;src是源代碼目錄,其中有源代碼test/Test.java文件;bin是輸出目錄,其中有test/Test.java被編譯后生成的test/Test.calss文件。|--src
| |--test
| |--Test.java
|
|--bin
|--test
|--Test.class
如果我們僅僅在cmd窗口(而非Eclsipe環(huán)境中)使用javap.exe,可以在任何目錄下執(zhí)行如下形式的命令行(前提是已經(jīng)設(shè)置了JAVA_HOME環(huán)境變量): javap -classpath Workspace_Path\Test\bin -c test.Test
配置外部工具的步驟:
[1]通過主菜單Run-->External Tools-->External Tools...進(jìn)入外部工具配置向?qū)А?br /> [2]選擇Program項(xiàng),并按左上角的新建(New Launch Configuration)按鈕顯示配置對(duì)話框。
[3]在Name文本框中輸入這個(gè)External Tool的名稱,本處寫javap。
[4]在Location中填入javap.exe的路徑。因?yàn)?font color="#0000ff">java.exe是工作區(qū)之外的程序,所以可以通過Browse File System...按鈕進(jìn)行選擇。
[5]Working Directory文本框保持為空。
[6]Arguments中要填入執(zhí)行javap命令時(shí)所需要的參數(shù),這個(gè)參數(shù)就是前述命令行中的-classpath Workspace_Path\Test\bin -c test.Test。但我們要使該工具有通用的使用,就不可能將這個(gè)參數(shù)“寫死”了。所以需要使用一些變量(Variable)來代替具體的路徑。點(diǎn)擊按鈕Variables...可以看到所有的變量,我們需要使用workspace_loc,project_name和java_type_name。最終的完全參數(shù)如下所示:
-classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name}
[7]點(diǎn)擊Apply之后,就可以在工具欄的外部工具按鈕(帶一把紅色小鎖的Run圖標(biāo))中發(fā)現(xiàn)一個(gè)名為javap的外部工具被添加進(jìn)去了。
[8]選擇某一個(gè)Java文件,然后點(diǎn)擊工具欄上的外部工具按鈕,即可對(duì)這個(gè)Java文件對(duì)應(yīng)的class文件進(jìn)行分解了。分解信息會(huì)顯示在控制臺(tái)中。
注意:細(xì)心的朋友肯定可以發(fā)現(xiàn),上述方法有十分嚴(yán)重的局限性:class文件必須在bin目錄下。其實(shí)對(duì)于設(shè)置外部工具的確切方法我沒有完全弄清楚,主要是不懂各個(gè)Variable的確切含義,以及它們的組合規(guī)律。
又:
前面已經(jīng)提到,前述的將javap.exe配置為外部工具的方法并不很好。關(guān)鍵在于Arguments設(shè)置的不好,以至于這種方法缺乏足夠的彈性。現(xiàn)在我們做一些改進(jìn):
將 -classpath ${workspace_loc}/${project_name}/bin -c ${java_type_name} 修改為-classpath ${folder_prompt} -c ${java_type_name}。
在這種情況下使用外部工具javap,我們需要先選中一個(gè)Java文件(不能是它的class文件),然后再運(yùn)行外部工具javap。運(yùn)行javap時(shí),會(huì)出現(xiàn)一個(gè)路徑選擇對(duì)話框,請(qǐng)選擇到class文件(包括它的包路徑)所在的根目錄。則在此處,這個(gè)路徑就是 Workspace_Path\Test\bin (而不是 Workspace_Path\Test\bin\Test ) 。
注意:這種方法的自由度已經(jīng)大大提高,但似乎仍然不太理想。因?yàn)槲覀儾粌H要選擇一個(gè)Java文件,還需要選擇一個(gè)相當(dāng)于classpath的路徑。所以該問題仍然需要繼續(xù)關(guān)注...
使用Templat
主菜單Preferences...-->Java-->Editor-->Templates,在Templates中可以看到一些已創(chuàng)建的模板,均都包含4部分:
Name:模板的名稱
Context:模板使用的環(huán)境
Description:對(duì)該模板功能的簡(jiǎn)單描述
Auto Insert:(目前還不懂^_^)
在Preview文本域中可以看到該模板的通用內(nèi)容。下面以foreach模板為例進(jìn)行講述。
Name:foreach,即Enhanced for-Loop,是JDK5.0的新特性之一。
Context:java,即在進(jìn)行Java編碼時(shí)使用
Description:iterate over an array or Iterable,即遍歷一個(gè)數(shù)組或一個(gè)實(shí)現(xiàn)了Iterable接口的對(duì)象。
Auto Insert:(無內(nèi)容)
Preview的內(nèi)容如下:
for (${iterable_type} ${iterable_element} : ${iterable}) {
${cursor}
}
Preview中的內(nèi)容,其實(shí)也就是該模板功能的實(shí)現(xiàn)方式。它指示了當(dāng)使用這個(gè)模板時(shí),應(yīng)該如何生成代碼。
我目前還不知道${}通用元素的使用方法,主要是不知道所有的可被使用的${}通用元素及其意義。不過根據(jù)這些通用元素的名字,我們?nèi)匀荒軌虿聹y(cè)到它的意義:
${iterable_type}
,迭代器中包含的元素的類型;
${iterable_element},聲明的一個(gè)迭代器中元素的引用變量;
${iterable},迭代器對(duì)象本身的引用變量;
${cursor},光標(biāo)的位置。
${cursor}
}
使用foreach模板:編輯Java源文件,先寫入foreach,然后再接著使用組合快捷鍵Alt+/(使用Content Assist,即內(nèi)容提示或所謂的智能感知),此時(shí)就會(huì)出現(xiàn)foreach模板的提示,單擊該提示即可。
創(chuàng)建模板,關(guān)鍵也是要弄清楚通用元素的使用方法。但對(duì)于不太復(fù)雜的模板,也可以不使用/少使用通用元素。不使用通用元素,會(huì)使模板的通用性差些。
設(shè)置多個(gè)Source與Output目錄
通過工程Properties-->Java Build Path-->Source,可以看到該工程的默認(rèn)Output目錄和所有Source目錄。
可以通過“Add Folder...”或“Link Folder...”為工程增加Source目錄。
打開已存在的Source目錄的樹,可以發(fā)現(xiàn)Output folder,一般它的值為Default output folder。選中并編輯它,就可以為這個(gè)Source目錄選擇Output目錄了。
最直接的方法:編輯工程根目錄下的.classpath文件,在該文件中加入如下形式的語句:
<classpathentry kind="src" path="源文件目錄" output="Output目錄"/>
即,增加一個(gè)Source目錄,并為它設(shè)置一個(gè)Output目錄。
工程的默認(rèn)Output目錄的配置語句的形式如下:
<classpathentry kind="output" path=" Output目錄 "/>
即,它不需要對(duì)應(yīng)特定的源文件目錄,工程的所有源文件目錄都與它關(guān)聯(lián)。
指定Eclipse啟動(dòng)畫面(Splash)
eclipse.exe -vmargs -Dosgi.splashLocation=Your_Splash_Path
Your_Splash_Path 就是所指定的啟動(dòng)畫面的路徑,必須是一張bmp格式的圖片。
為什么Eclipse能夠編譯出不同版本的class文件?
右鍵點(diǎn)擊Project-->Java Compiler-->JDK Compilance-->Compilance Level,在這個(gè)下拉列表框中可以選擇不同的編譯級(jí)別,目前包括1.3,1.4,5.0和6.0。
Eclipse并不使用當(dāng)前系統(tǒng)中安裝的JDK(JRE)中的編譯器(javac)編譯工程源代碼,而是使用JDT中的編譯工具來進(jìn)行。這也就能夠解釋,為什么在系統(tǒng)中只安裝了JDK1.4.2,但Eclipse仍然能夠編譯出5.0或6.0的class文件。
雖然Eclipse可以為每個(gè)工程選擇不同的編譯級(jí)別,且該編譯行為與JDK中的javac無關(guān),但在Eclipse中運(yùn)行class所需要的JRE卻必須是系統(tǒng)中已經(jīng)安裝了的。可以在主菜單Window-->Preferences-->Java-->Installed JREs中添加或選擇不同的JRE。
updating...