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