posts - 97,  comments - 93,  trackbacks - 0
          Eclipse是一款非常優(yōu)秀的開源IDE,非常適合Java開發(fā),由于支持插件技術(shù),受到了越來(lái)越多的開發(fā)者的歡迎。最新的Eclipse 3.0不但界面作了很大的增強(qiáng),而且增加了代碼折疊等眾多優(yōu)秀功能,速度也有明顯的提升。配合眾多令人眼花繚亂的插件,完全可以滿足從企業(yè)級(jí)Java應(yīng)用 到手機(jī)終端Java游戲的開發(fā)。本文將帶您手把手步入Eclipse的廣闊天地,詳細(xì)介紹在Eclipse下如何開發(fā)普通Java程序,Web應(yīng)用, J2EE應(yīng)用,手機(jī)Java程序,以及如何進(jìn)行單元測(cè)試,重構(gòu),配置CVS等詳細(xì)內(nèi)容。

          我的開發(fā)環(huán)境是JDK1.4.2+Eclipse3.0+Windows XP SP2,如果你在其他平臺(tái)上遇到任何問(wèn)題,歡迎來(lái)信交流。

          1. 安裝JDK1.4

          Eclipse 是一個(gè)基于Java平臺(tái)的開發(fā)環(huán)境,它本身也要運(yùn)行在Java虛擬機(jī)上,還要使用JDK的編譯器,因此我們必須首先安裝JDK。JDK1.4是目前最穩(wěn)定 的版本,同時(shí)也是Eclipse運(yùn)行的必須條件。先從SUN的官方站點(diǎn)http://java.sun.com下載JDK1.4 Windows版,目前最新的是1.4.2_06,然后運(yùn)行j2sdk-1_4_2_06-windows-i586-p.exe安裝,你可以自行設(shè)定安 裝目錄,我把它安裝到D:softwarej2sdk1.4目錄下。

          接下來(lái)要配置環(huán)境變量,以便Java程序能找到已安裝的JDK和其他配置信息。右鍵點(diǎn)擊“我的電腦”,選擇“屬性”,在彈出的對(duì)話框中選擇“高級(jí)”,“環(huán)境變量”,就可以看到環(huán)境變量對(duì)話框:


          上面是用戶變量,只對(duì)當(dāng)前用戶有效,下面是系統(tǒng)變量,對(duì)所有用戶都有效。如果你希望所有用戶都能使用,就在系統(tǒng)變量下點(diǎn)擊“新建”,填入:

          JAVA_HOME是JDK的安裝目錄,許多依賴JDK的開發(fā)環(huán)境都靠它來(lái)定位JDK,所以必須保證正確無(wú)誤。

          下一步,找到系統(tǒng)變量Path,點(diǎn)擊“編輯”,在最后添上JDK的可執(zhí)行文件的所在目錄,即%JAVA_HOME%in,我的對(duì)應(yīng)目錄便是D:softwarej2sdk1.4in,附加到Path中即可,注意要以分號(hào)“;”隔開:


          注意:如果系統(tǒng)安裝了多個(gè)Java虛擬機(jī)(比如安裝了Oracle 9i就有自帶的JDK1.3),必須把JDK1.4的路徑放在其他JVM的前面,否則Eclipse啟動(dòng)將報(bào)錯(cuò)。

          最 后一個(gè)系統(tǒng)變量是CLASSPATH,Java虛擬機(jī)會(huì)根據(jù)CLASSPATH的設(shè)定來(lái)搜索class文件所在目錄,但這不是必需的,可以在運(yùn)行Java 程序時(shí)指定CLASSPATH,比如在Eclipse中運(yùn)行寫好的Java程序時(shí),它會(huì)自動(dòng)設(shè)定CLASSPATH,但是為了在控制臺(tái)能方便地運(yùn)行 Java程序,我建議最好還是設(shè)置一個(gè)CLASSPATH,把它的值設(shè)為“.”,注意是一個(gè)點(diǎn)“.”代表當(dāng)前目錄。用慣了Windows的用戶可能會(huì)以為 Java虛擬機(jī)在搜索時(shí)會(huì)搜索當(dāng)前目錄,其實(shí)不會(huì),這是UNIX中的習(xí)慣,出于安全考慮。許多初學(xué)Java的朋友興匆匆地照著書上寫好了Hello, world程序,一運(yùn)行卻彈出java.lang.NoClassDefFoundError,其實(shí)就是沒(méi)有設(shè)置好CLASSPATH,只要添加一個(gè)當(dāng)前 目錄“.”就可以了。

          2. 安裝Eclipse 3.0

          配置好JDK后,下一步便是安裝Eclipse 3.0,可以從Eclipse的官方站點(diǎn)http://www.eclipse.org上下載,你會(huì)看到如下版本:

          ● Eclipse SDK
          ● RCP Runtime Binary
          ● RCP SDK
          ● Platform Runtime Binary
          ● Platform SDK
          ● JDT Runtime Binary

          Eclipse SDK包括了Eclipse開發(fā)環(huán)境,Java開發(fā)環(huán)境,Plug-in開發(fā)環(huán)境,所有源代碼和文檔,如果你需要所有的功能,可以下載這個(gè)版本。

          如果你和我一樣,只是用Eclipse開發(fā)Java應(yīng)用,而不是開發(fā)Eclipse插件或者研究Eclipse代碼,那么下載一個(gè)Platform Runtime Binary再加上JDT Runtime Binary是最好的選擇。

          下載eclipse-platform-3.0-win32.zip和eclipse-JDT-3.0.zip后,將它們解壓到同一個(gè)目錄,勿需安裝,直接找到目錄下的eclipse.exe運(yùn)行,出現(xiàn)啟動(dòng)畫面:


          稍等片刻,Eclipse界面就出來(lái)了。

          如果遇到錯(cuò)誤,啟動(dòng)失敗,可以檢查Eclipse目錄下的log文件,我曾經(jīng)遇到過(guò)XmlParser異常,仔細(xì)檢查發(fā)現(xiàn)原來(lái)Path中還有一個(gè)Oracle的Java1.3版本的虛擬機(jī),將它從Path中去掉后Eclipse啟動(dòng)正常。

          3. 第一個(gè)Java程序

          運(yùn)行Eclipse,選擇菜單“File”,“New”,“Project”,新建一個(gè)Java Project,我把它命名為HelloWorld,然后新建一個(gè)Java Class:


          我把它命名為HelloWorld,并且填上Package為example,鉤上“public static void main(String[] args)”,點(diǎn)擊“Finish”,Eclipse自動(dòng)生成了代碼框架,我們只需在main方法中填入:

          默認(rèn)設(shè)置下,Eclipse會(huì)自動(dòng)在后臺(tái)編譯,我們只需保存,然后選擇“Run”,“Run As”,“Java Application”,即可在Eclipse的控制臺(tái)看到輸出。

          要調(diào)試Java程序也非常簡(jiǎn)單,Run菜單里包含了標(biāo)準(zhǔn)的調(diào)試命令,可以非常方便地在IDE環(huán)境下調(diào)試應(yīng)用程序。

          1.4版本支持:

          選擇菜單“Window”,“Preferences”,在對(duì)話框中找到“Java”,“Compiler”,“Compliance and Classfiles”,將編譯選項(xiàng)改成1.4,就可以使用JDK1.4版的assert(斷言)語(yǔ)法,使得測(cè)試更加方便:


          4. 在Eclipse中使用JUnit

          測(cè) 試對(duì)于保證軟件開發(fā)質(zhì)量有著非常重要的作用,單元測(cè)試更是必不可少,JUnit是一個(gè)非常強(qiáng)大的單元測(cè)試包,可以對(duì)一個(gè)/多個(gè)類的單個(gè)/多個(gè)方法測(cè)試,還 可以將不同的TestCase組合成TestSuit,使測(cè)試任務(wù)自動(dòng)化。Eclipse同樣集成了JUnit,可以非常方便地編寫TestCase。

          我們創(chuàng)建一個(gè)Java工程,添加一個(gè)example.Hello類,首先我們給Hello類添加一個(gè)abs()方法,作用是返回絕對(duì)值:


          下一步,我們準(zhǔn)備對(duì)這個(gè)方法進(jìn)行測(cè)試,確保功能正常。選中Hello.java,右鍵點(diǎn)擊,選擇New->JUnit Test Case:

          Eclipse會(huì)詢問(wèn)是否添加junit.jar包,確定后新建一個(gè)HelloTest類,用來(lái)測(cè)試Hello類。

          選中setUp()和tearDown(),然后點(diǎn)擊“Next”:

          選擇要測(cè)試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入:

          JUnit會(huì)以以下順序執(zhí)行測(cè)試:(大致的代碼)

          try {
          HelloTest test = new HelloTest(); // 建立測(cè)試類實(shí)例
          test.setUp(); // 初始化測(cè)試環(huán)境
          test.testAbs(); // 測(cè)試某個(gè)方法
          test.tearDown(); // 清理資源
          }
          catch…

          setUp ()是建立測(cè)試環(huán)境,這里創(chuàng)建一個(gè)Hello類的實(shí)例;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認(rèn)為是測(cè)試方 法,JUnit會(huì)依次執(zhí)行testXxx()方法。在testAbs()方法中,我們對(duì)abs()的測(cè)試分別選擇正數(shù),負(fù)數(shù)和0,如果方法返回值與期待結(jié) 果相同,則assertEquals不會(huì)產(chǎn)生異常。

          如果有多個(gè)testXxx方法,JUnit會(huì)創(chuàng)建多個(gè)XxxTest實(shí)例,每次運(yùn)行一個(gè)testXxx方法,setUp()和tearDown()會(huì)在testXxx前后被調(diào)用,因此,不要在一個(gè)testA()中依賴testB()。

          直接運(yùn)行Run->Run As->JUnit Test,就可以看到JUnit測(cè)試結(jié)果:


          綠色表示測(cè)試通過(guò),只要有1個(gè)測(cè)試未通過(guò),就會(huì)顯示紅色并列出未通過(guò)測(cè)試的方法。可以試圖改變abs()的代碼,故意返回錯(cuò)誤的結(jié)果(比如return n+1;),然后再運(yùn)行JUnit就會(huì)報(bào)告錯(cuò)誤。

          如果沒(méi)有JUnit面板,選擇Window->Show View->Other,打開JUnit的View:


          JUnit 通過(guò)單元測(cè)試,能在開發(fā)階段就找出許多Bug,并且,多個(gè)Test Case可以組合成Test Suite,讓整個(gè)測(cè)試自動(dòng)完成,尤其適合于XP方法。每增加一個(gè)小的新功能或者對(duì)代碼進(jìn)行了小的修改,就立刻運(yùn)行一遍Test Suite,確保新增和修改的代碼不會(huì)破壞原有的功能,大大增強(qiáng)軟件的可維護(hù)性,避免代碼逐漸“腐爛”。


          5. 在Eclipse中使用Ant

          Ant是Java平臺(tái)下非常棒的批處理命令執(zhí)行程序,能非常方便地自動(dòng)完成編譯,測(cè)試,打包,部署等等一系列任務(wù),大大提高開發(fā)效率。如果你現(xiàn)在還沒(méi)有開始使用Ant,那就要趕快開始學(xué)習(xí)使用,使自己的開發(fā)水平上一個(gè)新臺(tái)階。

          Eclipse中已經(jīng)集成了Ant,我們可以直接在Eclipse中運(yùn)行Ant。

          以前面建立的Hello工程為例,創(chuàng)建以下目錄結(jié)構(gòu):

          新建一個(gè)build.xml,放在工程根目錄下。build.xml定義了Ant要執(zhí)行的批處理命令。雖然Ant也可以使用其它文件名,但是遵循標(biāo)準(zhǔn)能更使開發(fā)更規(guī)范,同時(shí)易于與別人交流。

          通常,src存放Java源文件,classes存放編譯后的class文件,lib存放編譯和運(yùn)行用到的所有jar文件,web存放JSP等web文件,dist存放打包后的jar文件,doc存放API文檔。

          然后在根目錄下創(chuàng)建build.xml文件,輸入以下內(nèi)容:

          <?xml version="1.0"?>
          <project name="Hello world" default="doc">

          <!-- properies -->
          <property name="src.dir" value="src" />
          <property name="report.dir" value="report" />
          <property name="classes.dir" value="classes" />
          <property name="lib.dir" value="lib" />
          <property name="dist.dir" value="dist" />
          <property name="doc.dir" value="doc"/>

          <!-- 定義classpath -->
          <path id="master-classpath">
          <fileset file="${lib.dir}/*.jar" />
          <pathelement path="${classes.dir}"/>
          </path>

          <!-- 初始化任務(wù) -->
          <target name="init">
          </target>

          <!-- 編譯 -->
          <target name="compile" depends="init" description="compile the source files">
          <mkdir dir="${classes.dir}"/>
          <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
          <classpath refid="master-classpath"/>
          </javac>
          </target>

          <!-- 測(cè)試 -->
          <target name="test" depends="compile" description="run junit test">
          <mkdir dir="${report.dir}"/>
          <junit printsummary="on"
          haltonfailure="false"
          failureproperty="tests.failed"
          showoutput="true">
          <classpath refid="master-classpath" />
          <formatter type="plain"/>
          <batchtest todir="${report.dir}">
          <fileset dir="${classes.dir}">
          <include name="**/*Test.*"/>
          </fileset>
          </batchtest>
          </junit>
          <fail if="tests.failed">
          ***********************************************************
          **** One or more tests failed! Check the output ... ****
          ***********************************************************
          </fail>
          </target>

          <!-- 打包成jar -->
          <target name="pack" depends="test" description="make .jar file">
          <mkdir dir="${dist.dir}" />
          <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
          <exclude name="**/*Test.*" />
          <exclude name="**/Test*.*" />
          </jar>
          </target>

          <!-- 輸出api文檔 -->
          <target name="doc" depends="pack" description="create api doc">
          <mkdir dir="${doc.dir}" />
          <javadoc destdir="${doc.dir}"
          author="true"
          version="true"
          use="true"
          windowtitle="Test API">
          <packageset dir="${src.dir}" defaultexcludes="yes">
          <include name="example/**" />
          </packageset>
          <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle>
          <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
          <tag name="todo" scope="all" description="To do:" />
          </javadoc>
          </target>
          </project>

          以上xml依次定義了init(初始化),compile(編譯),test(測(cè)試),doc(生成文檔),pack(打包)任務(wù),可以作為模板。

          選中Hello工程,然后選擇“Project”,“Properties”,“Builders”,“New…”,選擇“Ant Build”:

          填 入Name:Ant_Builder;Buildfile:build.xml;Base Directory:${workspace_loc:/Hello}(按“Browse Workspace”選擇工程根目錄),由于用到了junit.jar包,搜索Eclipse目錄,找到j(luò)unit.jar,把它復(fù)制到 Hello/lib目錄下,并添加到Ant的Classpath中:


          然后在Builder面板中鉤上Ant_Build,去掉Java Builder:

          再次編譯,即可在控制臺(tái)看到Ant的輸出:

          Buildfile: F:eclipse-projectsHellouild.xml

          init:

          compile:
          [mkdir] Created dir: F:eclipse-projectsHelloclasses
          [javac] Compiling 2 source files to F:eclipse-projectsHelloclasses

          test:
          [mkdir] Created dir: F:eclipse-projectsHello eport
          [junit] Running example.HelloTest
          [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.02 sec

          pack:
          [mkdir] Created dir: F:eclipse-projectsHellodist
          [jar] Building jar: F:eclipse-projectsHellodisthello.jar

          doc:
          [mkdir] Created dir: F:eclipse-projectsHellodoc
          [javadoc] Generating Javadoc
          [javadoc] Javadoc execution
          [javadoc] Loading source files for package example...
          [javadoc] Constructing Javadoc information...
          [javadoc] Standard Doclet version 1.4.2_04
          [javadoc] Building tree for all the packages and classes...
          [javadoc] Building index for all the packages and classes...
          [javadoc] Building index for all classes...
          [javadoc] Generating F:eclipse-projectsHellodocstylesheet.css...
          [javadoc] Note: Custom tags that could override future standard tags: @todo. To avoid potential overrides, use at least one period character (.) in custom tag names.
          [javadoc] Note: Custom tags that were not seen: @todo
          BUILD SUCCESSFUL
          Total time: 11 seconds

          Ant 依次執(zhí)行初始化,編譯,測(cè)試,打包,生成API文檔一系列任務(wù),極大地提高了開發(fā)效率。將來(lái)開發(fā)J2EE項(xiàng)目時(shí),還可加入部署等任務(wù)。并且,即使脫離了 Eclipse環(huán)境,只要正確安裝了Ant,配置好環(huán)境變量ANT_HOME=<Ant解壓目錄>,Path=…;%ANT_HOME% in,在命令行提示符下切換到Hello目錄,簡(jiǎn)單地鍵入ant即可。
          posted on 2006-05-22 18:12 wqwqwqwqwq 閱讀(2968) 評(píng)論(3)  編輯  收藏

          FeedBack:
          # re: Eclipse使用指南
          2006-05-23 23:05 | h
          # re: Eclipse使用指南
          2008-10-13 18:34 | shw2ly@163.com
          為什么每次開Eclipse都要重新安裝呢  回復(fù)  更多評(píng)論
            
          # re: Eclipse使用指南
          2008-10-13 18:47 | nicky
          @shw2ly@163.com
          你說(shuō)的情況不應(yīng)該發(fā)生,請(qǐng)重新安裝相應(yīng)版本JDk->相應(yīng)版本Eclipse.

          最新的eclipse我不是很清楚,3.3以前似乎也不需要安裝,在jdk環(huán)境下可以直接運(yùn)行。

          在開啟eclipse后,設(shè)置你的默認(rèn)工程文件位置。  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678




          常用鏈接

          留言簿(10)

          隨筆分類(95)

          隨筆檔案(97)

          文章檔案(10)

          相冊(cè)

          J2ME技術(shù)網(wǎng)站

          java技術(shù)相關(guān)

          mess

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          校園夢(mèng)網(wǎng)網(wǎng)絡(luò)電話,中國(guó)最優(yōu)秀的網(wǎng)絡(luò)電話
          主站蜘蛛池模板: 宿州市| 太仆寺旗| 砚山县| 扎兰屯市| 那坡县| 阆中市| 常州市| 乡城县| 普陀区| 灵武市| 乌苏市| 湾仔区| 武强县| 于田县| 兰西县| 西城区| 宜兰市| 北票市| 辽阳市| 伽师县| 涪陵区| 灌南县| 西安市| 新蔡县| 闽清县| 新源县| 龙游县| 富源县| 延吉市| 尖扎县| 大庆市| 古丈县| 林芝县| 高邑县| 山东省| 清水河县| 全州县| 稻城县| 广州市| 永丰县| 舞阳县|