John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
          Eclipse Weed
          在使用Eclipse的過程中一些小知識的收集,文中的所有描述均在Eclipse3.2環境下。(2006.11.13 最后更新 )

          Eclipse曾經使用過的Workspace的列表
          文件eclipse\configuration\.settings\org.eclipse.ui.ide.prefsRECENT_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設置的不好,以至于這種方法缺乏足夠的彈性?,F在我們做一些改進:
          -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卻必須是系統中已經安裝了的??梢栽谥鞑藛?font color="#006400">Window-->Preferences-->Java-->Installed JREs
          中添加或選擇不同的JRE。

          updating...
          posted on 2006-10-12 11:29 John Jiang 閱讀(2414) 評論(2)  編輯  收藏 所屬分類: Eclipse

          評論

          # re: Eclipse Weed 2006-10-18 15:37 小林
          嘿嘿 這些玩意應該早點做
          比如文檔的注釋,應該在生成文檔時就把模板設置好
          每次生成一個文件的時候都會用這個模板
          又統一又美觀又實用
          多爽啊。  回復  更多評論
            

          # re: Eclipse Weed 2006-10-18 17:03 Sha Jiang
          @小林
          將“文檔”的生成“模板化”?
          如果有不少的文檔的形式是一樣的,可以試試這種方法。
          Good Luck!

          a cup of Java, cheers!
          Sha Jiang  回復  更多評論
            

          主站蜘蛛池模板: 响水县| 庄浪县| 合水县| 云阳县| 连州市| 虞城县| 苏尼特左旗| 宿迁市| 永济市| 儋州市| 福贡县| 丹凤县| 许昌县| 遂溪县| 包头市| 泰兴市| 漾濞| 迁安市| 峨边| 施秉县| 嘉禾县| 九江市| 三江| 青海省| 大宁县| 长武县| 广州市| 海城市| 新田县| 临泽县| 方城县| 岑巩县| 循化| 兰西县| 盐源县| 漠河县| 大英县| 台北县| 合阳县| 屏边| 桑日县|