2001年11月,IBM 把Eclipse 捐獻給了開源社區(qū)。2006年的今天,Eclipse度過了它的五歲生日。可喜可賀……
今天的Eclipse社區(qū)空前活躍,而Eclipse 也獨占鰲頭——逐漸成為Java開發(fā)環(huán)境中最主流、市場份額占有最多、功能最強大以及插件最豐富的IDE。另外Rails愛好者經(jīng)常使用的IDE之一的RadRails也是基于Eclipse的。
今天的Eclipse 隨著Java 開發(fā)人員一起成長而來,而廣大的Java 開發(fā)者們也見證了Eclipse的發(fā)展歷程。
2001年11月,Eclipse 1.0 發(fā)布,開源。
2003年4月,Eclipse 2.1 發(fā)布,雖然大受歡迎但插件模型仍然是靜態(tài)的。
2004年6月,Eclipse 3.0 正式發(fā)布,真正成為一個完美的、可擴展的開發(fā)環(huán)境。此時Java開發(fā)人員已經(jīng)達到300萬。
2005年6月,Eclipse 3.1 發(fā)布,30天達到100萬下載量。而此時全世界有大約450萬名開發(fā)者正在使用Java 技術(shù)。
2006 年1月,Eclipse 國際高峰論壇首次登陸中國。
2006 年7月,Eclipse 3.2 正式發(fā)布,成就新里程碑……
總結(jié)一下圍繞Eclipse 的幾大熱點:
一、Java IDE 之爭
二。開發(fā)工具王者比拼:.NET單挑J2EE
在Eclipse IDE出現(xiàn)之前,Java開發(fā)工具主要是面向Swing(Java圖形化工具)的,那時候他們很難與微軟的Visual Studio一爭高低,但是Eclipse IDE的出現(xiàn)徹底改變了這種狀況。
下面筆者將按一些重要的開發(fā)相關(guān)分類,來比較當(dāng)前這兩個最具代表性的開發(fā)工具,看一下在每一個分類中他們誰究竟要更強大一些。
1、核心開發(fā)環(huán)境
比較項目:語法高亮、錯誤預(yù)防、代碼重構(gòu)、代碼援助(code assist)、編譯、運行、調(diào)試
獲勝者:Eclipse
Eclipse是一個強大的怪獸。它具有令人難以置信的智能代碼援助(code assist)、豐富的代碼重構(gòu)功能、錯誤預(yù)防和“代碼修正”建議,同時還具有非常強大的調(diào)試器,可以說在每一個功能上都打敗了Visual Studio。無論是Visual Studio 2005還是Visual Studio Express,都稱的上一個非常好的集成開發(fā)環(huán)境(IDE),在Eclipse支持的所有功能中,它也同樣支持很多。但是在Visual Studio中沒有一個功能,能像Eclipse中那樣強大和專業(yè)。因此,在這個分類中,我把獲勝者定位Eclipse。
2、綜合開發(fā)
比較項目:數(shù)據(jù)庫、系統(tǒng)集成、web部署
獲勝者:Visual Studio
我知道,感覺這個分類就像是在騙人,因為Vistual Studio只支持與基于Windows的產(chǎn)品配合使用,但是Visual Studio與這些產(chǎn)品配合的如此天衣無縫,我必須承認來自微軟的Visual Studio占據(jù)了優(yōu)勢。在Visual Studio中創(chuàng)建SQL Server支持的BizTalk、ASP.NET或C#解決方案如此容易,集成的如此好,產(chǎn)品間的差別如同完全透明一樣。Eclipse和他的商業(yè)伙伴之間也有非常好的各種開發(fā)模型以實現(xiàn)互相支持,盡管他們也可以比較好的配合使用,但是不像Visual Studio中那么渾然一體。
3、源程序控制和配置管理(SCM)
如同上面一類,Visual Studio在這一方面可以很輕松的實現(xiàn)。他可以與大部分運行于Windows上的工具配合使用,其他廠商具有對其良好的支持。但是,Eclipse可以與幾乎所有支持平臺上的所有SCM廠商配套使用,而且配合的非常好。最重要的是,它可以與兩個可能是最重要的開源相關(guān)的SCM產(chǎn)品完全整合,即Subversion和CVS,這兩個工具已經(jīng)被數(shù)千個商業(yè)和開源項目所使用,因此我沒有理由不宣布:
獲勝者:Eclipse
4、軟件質(zhì)量和測試
測試對于保證軟件開發(fā)質(zhì)量有著非常重要的作用,Eclipse內(nèi)置對JUnit單元測試的支持,測試首要的開發(fā)體系和代碼錯誤預(yù)防是Eclipse平臺不可或缺的功能。它內(nèi)置對JUnit(包括JUnit 4或TestNG插件)的支持,使得測試非常容易且非常自然。Eclipse還非常善于檢測潛在的錯誤(例如self assigning class properties in setter methods),代碼格式問題和修補建議。不過,在Web服務(wù)測試方面,Visual Studio要超過Eclipse,在Visual Studio中測試Web服務(wù)非常容易和簡單,這是這個工具中我最喜歡的功能之一,甚至在其免費版的Express版中也支持該功能。
獲勝者:Eclipse
5、建立和部署
這是比較難判斷的一項。.NET作為框架比J2EE更加容易部署,但是同時也給我們的比較工作帶來了困難,很難在部署過程中來比較這兩個工具。由于Eclipse內(nèi)置了對ANT創(chuàng)建工具的支持,和對基于“熱”部署的類加載器的支持,所以可以很好的部署J2EE應(yīng)用程序。但是Visual Studio的部署能力同樣根本不需要你擔(dān)心,它可以完全控制目標部署服務(wù)器,可能是IIS,SQL Server或BizTalk。
獲勝者:平局
總獲勝者:Eclipse
Eclipse如此強大,以致于業(yè)界的任何其他IDE工具都不能對其構(gòu)成威脅,包括Visual Studio。有經(jīng)驗的程序員在使用Eclipse的時候,會一種感覺:IDE可以與它心意互通。在所有方面,這是一個開發(fā)者為開發(fā)者開發(fā)的工具。
Visual Studio也非常不錯,它是一個非常偉大且高效的工具,它是一個.NET開發(fā)的完美工具。很明顯,微軟已經(jīng)盡了最大的努力來為.NET開發(fā)者提供一個非常高效且非常直觀的開發(fā)工具。甚至,其免費版的Visual Studio Express版也非常令人印象深刻。
但是,由于得到了如此巨大的開發(fā)社區(qū)的反饋信息和開源開發(fā)者的無私奉獻,Eclipse明顯已經(jīng)先行一步,實際上重新定義了IDE的概念,把傳統(tǒng)IDE帶入到一個更強大更智能的境界,使它本身變?yōu)殚_發(fā)者思考過程的一種延續(xù)和擴展。因此我選擇了Eclipse作為最后的勝利者。
三.Eclipse:談Java及Eclipse未來之路
Eclipse基金會的Eclipse 2006世界大會9月初在麻省的劍橋舉行,大會宣揚了這個開源應(yīng)用開發(fā)項目的成功,并表示之所以獲得今天的發(fā)展一方面是因為吸引了開發(fā)者的興趣,一方面得到了來自諸如IBM的大公司的支持。InfoWord編輯全程采訪了Eclipse基金會的執(zhí)行理事Mike Milinkovich,他談?wù)摿嗽摶鸾M織所取得的成績、以及與微軟和Sun之間的競爭關(guān)系,并說到了Java以及Eclipse的未來之路。
InfoWord:據(jù)你估計基于Eclipse的軟件產(chǎn)生了多少價值的財富,或者Eclipse對用戶的主要吸引力依然在于其全部免費么?
Mike Milinkovich:按照圍繞Eclipse建立的生態(tài)系統(tǒng)的大小,我認為我們擁有一個比較好的數(shù)據(jù)在量化Eclipse產(chǎn)生的財富,我非常確信,這個數(shù)字是十億美元甚至更多,但是我們沒有確切的數(shù)字。
對于你說的Eclipse的免費成為其吸引開發(fā)者的因素,我認為不完全準確,Eclipse生態(tài)系統(tǒng)模型與你說的有一點不同,因為對Eclipse團隊總體上來說,幾乎是唯一一個致力于在免費平臺上創(chuàng)建一個商業(yè)盈利軟件的生態(tài)系統(tǒng)。因此,我們的確提供開源的Eclipse開發(fā)工具和Eclipse框架,而且這都是免費提供的。但是我們更希望看到的是,在Eclipse生態(tài)系統(tǒng)中人們可以通過Eclipse平臺來獲得財富。
InfoWord:剛才我碰到一個技術(shù)基于Eclipse的公司,他們沒有銷售人員。你認為這是軟件公司發(fā)展的一個趨勢嗎?還是部分開源公司因為他們沒有看到需要而不設(shè)銷售人員?
Mike Milinkovich:從歷史的角度來看,企業(yè)軟件有很多通過直銷渠道銷售的情況。隨著時間的過去,我相信,我們正在開始看到開源軟件產(chǎn)品也成功的應(yīng)用了直銷模式,這個領(lǐng)域一直是傳統(tǒng)軟件產(chǎn)品所占據(jù)的。說到這兒,我想起Sugar CRM和Compiere ERP和開源產(chǎn)品,這些平臺或這些產(chǎn)品擁有非常非常低的銷售成本,因此客戶更容易接受他們。我認為隨著時間的過去,會有越來越少的軟件銷售人員。
InfoWord:對于Sun將加入Eclipse或合并NetBeans和Eclipse的傳聞,您怎么看待該事件的進展?
Mike Milinkovich:當(dāng)然不是。Sun已經(jīng)非常明確表示,除了繼續(xù)推動他們的NetBean策略,不會對任何其他事情感興趣。
InfoWord:你如何看待目前存在的兩個競爭對手?有利于競爭嗎?
Mike Milinkovich:我們當(dāng)然不會懼怕競爭,而且很明顯我們在贏得這種競爭, SUN似乎說的與您說的不同, 那么祝他們好運。我已經(jīng)得到很多用戶,而他們沒有。
InfoWord:NetBeans或Windows .Net,你認為哪一個是Eclipse的主要競爭對手?
Mike Milinkovich:我們一直很明確,Eclipse將一直面臨來自微軟的競爭。
InfoWord:那么你如何經(jīng)營Eclipse?
Mike Milinkovich:實際上,我們五年前就開始運作了,我想說從零開始發(fā)展,五年中Eclipse的成長是相當(dāng)顯著的。
InfoWord:現(xiàn)在Eclipse開始不重視Java而將重點放在其他語言上嗎?例如像.Net一樣的某些腳本語言?
Mike Milinkovich:我不認為我們不再對Java重視。由于Eclipse正在不斷成長,有更多的項目加入進來。現(xiàn)在有更多的資源幫助Eclipse支持更多的語言和平臺。現(xiàn)在幾乎所有的Eclipse項目都是有Java編寫代碼,因此我們很明顯是Java的重要用戶。但是就Java是我們在Eclipse內(nèi)支持的唯一語言或平臺而論,這對于Eclipse是永遠不可能的。只要我們發(fā)現(xiàn)人們喜歡的平臺或語言,我們就將支持他。
InfoWord:請問Eclipse的發(fā)展方向,以及最近有什么新技術(shù)?
Mike Milinkovich:說到這個,很多事情一下子涌現(xiàn)到我的腦海中。首先是圍繞富客戶端平臺的繼續(xù)增長和采用。支持更多的語言。下個季度,我們計劃在Eclipse內(nèi)推出首版的PHP IDE項目,我們認為這是一個非常令人激動的項目。因為無論是對企業(yè)開發(fā)者還是Web開發(fā)者來說,PHP是一門非常重要的語言,因此使得Eclipse工具支持PHP是一件令我們激動的事情。
Java咖啡館(3)——Eclipse
序言
與鐵匠揮灑汗水和忍受高溫相比,軟件開發(fā)是一個既干凈又抽象的過程。不過,代碼與鋼鐵的相同之處就是它們都有延展性——通過足夠的技巧和努力,可以把鋼鐵或代碼變成精致的工具或巨大的機器。
上回我們品嘗第一杯咖啡時,只說出了第一句“Hello, world!”,手工編寫、編譯、調(diào)試、運行Java程序,一定讓你手忙腳亂,飽嘗Java咖啡的苦澀。若要完成一個大型項目,這樣的徒手作業(yè)無異于愚公移山。
對Java開發(fā)者來說,沒有什么能夠比得心應(yīng)手的集成開發(fā)環(huán)境(Integrated Development Environment,簡稱IDE)更令人著迷。 所謂IDE,就是把編寫、編譯、調(diào)試、運行集成在一個統(tǒng)一開發(fā)環(huán)境中的軟件,并且還增加了許多提高開發(fā)效率的實用功能,比如高級編輯功能、自動編譯、設(shè)置斷點逐步調(diào)試、在IDE內(nèi)部顯示運行結(jié)果等。徒手開發(fā)好比刀耕火種,用IDE可謂進入了蒸汽時代。
十年前,由于技術(shù)所限,IDE還是奢侈品。隨著科技的飛速發(fā)展,十年之后的今天,界面易用、功能強大、速度飛快的IDE已經(jīng)無法成為人們熱衷的話題,即便免費也難以成為怦然心動的惟一理由。套用經(jīng)濟學(xué)術(shù)語,人們渴望的不僅僅是一個傳統(tǒng)的IDE,而是一種邊際效應(yīng)遞增的開發(fā)工具——更多的可用資源、更高的開發(fā)效率、更合理的開發(fā)方法,以及更保值的知識投入——免費當(dāng)然再好不過了。
Eclipse就是這樣一個開發(fā)工具——開放源代碼、免費、優(yōu)秀的廠商支持,并且擁有豐富的擴展資源。
Eclipse
1.Eclipse的歷史
Eclipse的前身是IBM的Visual Age for Java(簡稱VA4J)。把這個項目免費贈送給Eclipse社團(www.eclipse.org)前,IBM已經(jīng)投入超過四千萬美元進行研發(fā)。Eclipse社團的創(chuàng)始人還包括Borland、Merant、QNX Software Systems、Rational Software、Red Hat、SuSE、TogetherSoft和Webgain,后來加入的還有Oracle等公司,實力相當(dāng)雄厚。如今,IBM通過附屬的研發(fā)機構(gòu)Object Technologies International(簡稱OTI),繼續(xù)領(lǐng)導(dǎo)著Eclipse的開發(fā)。
黃糖故事
OTI的傳說
OTI是杰出的面向?qū)ο箝_發(fā)工具的研究組織。早在1988年,他們對Smalltalk已經(jīng)有了深入研究。在《Java咖啡館(1)——嘆咖啡》的黃糖故事中我們已經(jīng)介紹過,Smalltalk是第一個完全面向?qū)ο蟮膭討B(tài)計算機程序設(shè)計語言。1996年加入IBM后,他們推動了IBM著名的Visual Age系列開發(fā)工具的生產(chǎn)。實際上,IBM當(dāng)時的VA4J是用Smalltalk編寫的,并且為Java融入了許多Smalltalk的先進理念,比如沒有“文件”的概念,版本控制被提高到方法學(xué)的層次。
Eclipse可以看做VA4J的Java語言實現(xiàn),但并沒有受到Smalltalk太多的影響和制約。為了更加實用,Eclipse去掉了一些純OO(面向?qū)ο?的元素,在理想主義與實用性之間找到了一個很好的平衡點。雖然這使得一些純OO的追隨者傷心欲絕,但結(jié)合實際應(yīng)用、聆聽用戶的聲音,或許這正是Java如此成功的根本原因吧。
2.Eclipse的構(gòu)架
如果把Java開發(fā)者比作鐵匠,那么把Eclipse比作鐵匠鋪就再合適不過了——你不但能夠制作產(chǎn)品,還能夠打造開發(fā)工具。
當(dāng)下載了Eclipse,你直接接觸到的是:
★用來編輯和調(diào)試Java源代碼的Java開發(fā)工具箱(Java Development Toolkit,簡稱JDT),功能相當(dāng)于IDE,用來開發(fā)產(chǎn)品。
★可以擴展Eclipse本身的插件開發(fā)環(huán)境(Plug-in Development Environment,簡稱PDE),好比Winamp等多媒體播放器的插件開發(fā)包,用來打造開發(fā)工具。
實際上,Eclipse的基礎(chǔ)是Eclipse平臺(Eclipse Platform),提供軟件開發(fā)工具集成的服務(wù),而各種開發(fā)工具,包括JDT和PDE,都是用插件的形式提供的。插件設(shè)計使得Eclipse具有開放式可擴充的結(jié)構(gòu)。比如,你想開發(fā)C/C++程序,裝一個C開發(fā)工具(C Development Toolkit,簡稱CDT)插件代替JDT即可。同理,通過開發(fā)相應(yīng)插件,Eclipse也可以用來開發(fā)微軟的C#程序。Eclipse設(shè)計的優(yōu)美之處在于,除了小部分運行的核心,其他都是插件(見圖1)。
通過插件機制,Eclipse體現(xiàn)了一種主觀能動的態(tài)度:它提供給你一個開放的平臺、一個平等參與的機會,以及一些需要遵守的總體規(guī)則,然后你盡可快意恩仇,以出人意料但又令人拍案叫絕的方式來使用Eclipse。如果你有新的需要而Eclipse沒有滿足,自己動手做個插件吧,不但豐衣足食,對整個Eclipse社群也是直接的貢獻。
主觀能動并非開發(fā)工具的惟一態(tài)度。與Eclipse競爭的開發(fā)工具,比如Borland公司的JBuilder,采用的是另一種做法:你支付高昂的費用,Borland提供一個近乎全能的JBuilder——包括支持Eclipse不內(nèi)建提供的JSP(服務(wù)器端動態(tài)網(wǎng)頁技術(shù))、EJB(一種企業(yè)級數(shù)據(jù)持久技術(shù))和Web Services(Web服務(wù))的開發(fā)。如若你要求新的功能,你可以告訴善于聆聽用戶意見的Borland,或許他們會在下一個版本中加上新特性滿足你的要求。當(dāng)然也可能完全不理你,認為你的需求不足以令他們開發(fā)一個新特性。Borland公司的態(tài)度充滿了商業(yè)的嚴謹,JBuilder也堪稱經(jīng)典,但Eclipse的那種瀟灑和自由,用戶的那種強烈的歸屬感,溢于言表。
3.開放源代碼
Eclipse是一個開放源代碼的軟件,是以Common Public License (簡稱CPL)授權(quán)形式發(fā)布的。開源通常意味著免費,Eclipse也不例外。
雖然Eclipse是一個開放源代碼的項目,但由IBM這樣一個商業(yè)主體領(lǐng)導(dǎo)著項目的開發(fā),這一點跟普通的趨于無政府主義的開源軟件有所區(qū)別。實際上,CPL授權(quán)旨在促進Eclipse平臺上的商業(yè)應(yīng)用,呈現(xiàn)一個基于Eclipse的免費和商業(yè)軟件共存的系統(tǒng)。
公開源代碼的一個自然結(jié)果,就是Eclipse開發(fā)者一直在聽取用戶的意見——實際上,Eclipse開發(fā)者本身就是Eclipse最忠實的使用者。而Eclipse開發(fā)者中,不乏IBM的杰出科學(xué)家,所以其品質(zhì)及理念極為出色。當(dāng)初Eclipse 2.1發(fā)布時,曾經(jīng)出現(xiàn)過“哄搶”的慘烈局面——下載量太大導(dǎo)致服務(wù)器帶寬不夠,要想在第一周內(nèi)得到一份拷貝,也不是那么容易!
4.豐富的擴展資源
Eclipse是軟件開發(fā)者的鐵匠鋪,煉爐、鐵砧以及錘子,一應(yīng)俱全。就像鐵匠用已有的工具打造鉗子等新工具一樣,你還可以用Eclipse開發(fā)Eclipse的插件來擴展其功能。得益于在Java社團中極高的知名度以及開源的本質(zhì),很多個人或者廠商提供了許多工具來擴展Eclipse,比如開發(fā)J2EE、UML建模等插件,很少有找不到相應(yīng)功能的插件。此外,大多數(shù)工具都是免費的。
Eclipse的獲取與安裝
1.下載并安裝Eclipse
下載Eclipse的網(wǎng)頁是http://www.eclipse.org/downloads/index.php。鑒于令人朝思暮想的Eclipse 3.0 Release于2004年6月25日左右發(fā)布,我們這里將采用Eclipse 3.0 M9 Stable Build進行講解。Windows版本的文件名是Eclipse-SDK-3.0M9-win32.zip,約85.3MB。
安裝Eclipse異常簡單,把ZIP包中的Eclipse目錄解壓縮到C盤根目錄中即可。
黃糖故事
關(guān)于開源軟件版本的行話
許多開源軟件都有若干約定成俗的版本稱謂,好比行當(dāng)黑話,不了解會吃大虧。
Release:實現(xiàn)承諾的特性,并且通過徹底測試的穩(wěn)定版本。這種版本一般非常健壯,并且擁有許多可以配合使用的第三方軟件,適合開發(fā)商業(yè)項目。在這篇文章撰寫之時,Eclipse的最新Release版本是2.1.3,于2004年3月10日發(fā)布。Release相當(dāng)于Windows正式版。
Stable Build:新的Release版本一般要經(jīng)過若干個開發(fā)周期,在此期間,如果某個版本經(jīng)過測試相對穩(wěn)定,開發(fā)人員便會把它發(fā)布成Stable Build,供渴望嘗試新特性的用戶在第一時間體驗。相當(dāng)于Beta測試版本的Windows。
Integration Build:當(dāng)Eclipse開發(fā)人員開發(fā)出穩(wěn)定部件時發(fā)布的版本,當(dāng)然不能保證部件之間能夠友善合作。如果可以,則將升級為Stable Build發(fā)布。不推薦普通用戶下載使用。
Nightly Build:每夜構(gòu)筑的版本,是自動工具每天晚上通過自動編譯得到的版本,方便開發(fā)者之間交流。這種版本的穩(wěn)定性沒有任何保障,不推薦用戶下載使用。
2.啟動Eclipse
你必須安裝了J2SE 1.4以上的SDK或JRE才能運行Eclipse,具體安裝方法請參考《Java咖啡館(2)——第一杯咖啡》一文。一切就緒后,雙擊“C:\Eclipse\Eclipse.exe”便能啟動Eclipse了。首次啟動Eclipse,會讓你配置工作區(qū),選擇默認即可(見圖2)。
用Eclipse開發(fā)Hello World!
讓我們通過Hello World!程序來體驗地道的Java開發(fā)。
第一步:新建Java項目
選擇“File→New→Project...”,選擇“Java Project”,點擊“Next”,便打開了“New Java Project”向?qū)АT?#8220;Project name”中填入“HelloWorld”,不需要進行其他設(shè)置,直接左擊“Finish”按鈕。
第二步:新建HelloWorldApp類
選擇“File→New→Class”,在“New Java Class”向?qū)е械腘ame框中輸入“HelloWorldApp”,并且在“public static void main(String[] args)”選項前面打上勾。
這時,向?qū)幸粋€提示,由于項目簡單,不需要用到package,所以不必理會。最后按下“Finish”按鈕。這時你會發(fā)現(xiàn),上期連載中的Hello World!程序框架代碼已經(jīng)自動生成。這就是Eclipse的代碼生成(Code Generation)特性(見圖3)。
第三步:添加打印語句
與上回連載中的代碼相比,現(xiàn)在僅僅缺少一句輸出“Hello World!”字樣的語句:
System.out.println("Hello World!");
讓我們看看Eclipse中如何快速輸入。
首先把光標移動到“main”函數(shù)那行的“{”后面,回車,光標會自動跳到下一行并且多一個Tab位的縮進,自動保持代碼的美觀。現(xiàn)在輸入“System”,注意“S”大寫。然后輸入“.”,這時你會發(fā)現(xiàn)自動彈出一個菜單,顯示了“System”所有成員變量和方法!接著輸入“o”,彈出菜單會自動過濾以“o”打頭的成員變量和方法,所以只剩下“out”了,只要按下回車,“out”便自動加到“.”的后面。繼續(xù)輸入“.”,又會跳出菜單顯示“out”的方法(見圖4)。由于“out”的眾多方法中叫做“print”的很多,你可以直接輸入“println”或在下拉菜單中搜索,并按下回車。這時,你會發(fā)現(xiàn)“println”后面的括號都自動生成了。把光標移動到括號里面,輸入引號,Eclipse會自動給你添加另外一半引號。在兩個引號中間輸入“Hello World!”。最后把光標移動到這行的最后,輸入“;”號。
雖然敘述起來很羅嗦,但你自己操作一遍就能體會這樣的編碼有多舒服。這就是Eclipse的代碼完成(Code Completion)功能。代碼完成能夠:
★通過自動過濾加快輸入的速度;
★通過選擇與回車鍵選擇的方式來避免輸入錯誤;
★當(dāng)你記不清某個類的成員變量或者方法時可以有效地提示你。
這里還有一個實用的技巧:當(dāng)你的源代碼中存在語法問題,Eclipse編輯器會用紅色大叉外加波浪線來標記,你可以根據(jù)提示隨時修正。
第四步:運行Java程序
現(xiàn)在直接在Eclipse中運行這個程序,看看執(zhí)行結(jié)果。
按下“Run→Run...”,Eclipse會彈出運行設(shè)置向?qū)В儐栠\行配置。這個程序是一個Java程序,所以在Configurations里面選擇“Java Application”,然后按下“New”按鈕。當(dāng)Eclipse創(chuàng)建好配置以后,你只需要按下Run便能夠看到結(jié)果了(見圖5)。
小結(jié)
實際上,Eclipse博大精深,而且蘊含許多精辟的方法與概念,是許多IBM科學(xué)家多年積累的經(jīng)驗。但由于Java咖啡館主題還是Java語言,不能讓Eclipse喧賓奪主,然而Eclipse中的許多哲學(xué)思想通用于軟件開發(fā),很多軟件方法與技術(shù)令人愛不釋手。希望你有時間能多多把玩Eclipse,這個軟件絲毫不亞于幾千美金的商業(yè)軟件!最后,推薦閱讀Jim D'Anjou等人撰寫的《Using Java Development Tools in Eclipse》一文,該文章的URL是http://www.awprofessional.com/articles/article.asp?p=31789,文章對JDT的使用有詳細的介紹。
eclipse 插件 下載 收藏工具資源
Eclipse下載
EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在這里下載
http://www.eclipse.org/downloads/index.php
2 lomboz J2EE插件,開發(fā)JSP,EJB
http://forge.objectweb.org/projects/lomboz
3 MyEclipse J2EE開發(fā)插件,支持SERVLET/JSP/EJB/數(shù)據(jù)庫操縱等
http://www.myeclipseide.com
4 Properties Editor 編輯java的屬性文件,并可以自動存盤為Unicode格式
http://propedit.sourceforge.jp/index_en.html
5 Colorer Take 為上百種類型的文件按語法著色
http://colorer.sourceforge.net/
6 XMLBuddy 編輯xml文件
http://www.xmlbuddy.com
7 Code Folding 加入多種代碼折疊功能(比eclipse自帶的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
8 Easy Explorer 從eclipse中訪問選定文件、目錄所在的文件夾
http://easystruts.sourceforge.net/
9 Fat Jar 打包插件,可以方便的完成各種打包任務(wù),可以包含外部的包等
http://fjep.sourceforge.net/
10 RegEx Test 測試正則表達式
http://brosinski.com/stephan/archives/000028.php
11 JasperAssistant 報表插件(要錢的哦~)
http://www.jasperassistant.com/
12 Jigloo GUI Builder JAVA的GUI編輯插件
http://cloudgarden.com/jigloo/
13 Profiler 性能跟蹤、測量工具,能跟蹤、測量B/S程序
http://sourceforge.net/projects/eclipsecolorer/
14 AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結(jié)構(gòu)等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
15 Log4E Log4j插件,提供各種和Log4j相關(guān)的任務(wù),如為方法、類添加一個logger等
http://log4e.jayefem.de/index.php/Main_Page
16 VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
17 Implementors 提供跳轉(zhuǎn)到一個方法的實現(xiàn)類,而不是接口的功能(實用!)
http://eclipse-tools.sourceforge.net/implementors/
18 Call Hierarchy 顯示一個方法的調(diào)用層次(被哪些方法調(diào),調(diào)了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
19 EclipseTidy 檢查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
20 Checkclipse 檢查代碼的風(fēng)格、寫法是否符合規(guī)范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
21 Hibernate Synchronizer Hibernate插件,自動映射等
http://www.binamics.com/hibernatesync/
22 VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
23 EditorList 方便的列出所有打開的Editor
http://editorlist.sourceforge.net/
24 MemoryManager 內(nèi)存占用率的監(jiān)視
http://cloudgarden.com/memorymanager/
25 swt-designer java的GUI插件
http://www.swt-designer.com/
26 TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html
27 XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
28 quantum 數(shù)據(jù)庫插件
http://quantum.sourceforge.net/
29 Dbedit 數(shù)據(jù)庫插件
http://sourceforge.net/projects/dbedit
30 clay.core 可視化的數(shù)據(jù)庫插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins
31 hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync
32 struts-console Struts插件
http://www.jamesholmes.com/struts/console/
33 easystruts Struts插件
http://easystruts.sourceforge.net
34 veloedit Velocity插件
http://veloedit.sourceforge.net/
35 jalopy 代碼整理插件
http://jalopy.sourceforge.net/
36 JDepend 包關(guān)系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html
37 Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/
38 doclipse 可以產(chǎn)生xdoclet 的代碼提示
http://beust.com/doclipse/
39 SQLExplorer,在Eclipse 中連接各種數(shù)據(jù)庫進行操作使用
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=31124
假如,當(dāng)年IBM 沒有把Eclipse 捐出去,今天又會是怎樣呢?
如果你想為Eclipse送上自己的祝福,可以點擊electronic birthday card 制作電子賀卡。
在Eclipse五周歲來臨之際,Eclipse將在11月份舉行慶祝活動,并邀請廣大的愛好者參加。在世界各地都有當(dāng)?shù)氐膽c祝活動,詳情請點擊Eclipse 5th Birthday Parties。
如果你是一個Java支持者,你一定不會陌生Netbeans,因為大家都是從Netbeans的愛恨交加中走過來的,初識Netbeans還是3.6版本,當(dāng)時無論從界面還是運行上,真的不敢恭維,但是誰又能說Netbeans會停止它前進的腳步呢?由于開源腳步的加快,Borland提前宣布退出,給了Netbeans更多的機會,也讓Netbeans在業(yè)界得到專業(yè)人士的賞識,但是他真的走出充當(dāng)配角角色嗎?真的像Netbeans高級宣傳官所說的那樣走出低谷了嗎?
Netbeans拒絕與Eclipse合并
隨著開源的興起,Jbuilder光輝不在,Netbeans的市場份額在今年上半年有了明顯的增長,據(jù)國外權(quán)威調(diào)查機構(gòu)顯示,Eclipse 市場份額占45%,Netbeans占 30%,Jbuilder占15% ,其它IDE占5%,從調(diào)查分析來看,Netbeans的市場占有率正在上升,原來三國鼎立的局面因為Jbuilder的退出,使Eclipse對決 Netbeans大戰(zhàn)提前上演了,都說這是一場勢均力敵的戰(zhàn)爭,倒不如說是兩大軟件巨頭的撕殺,2006年初IBM就開始和Sun公司進行談判,數(shù)月談判結(jié)果給了IBM當(dāng)頭一棒,Sun公司拒絕加入IBM主導(dǎo)的開源項目Eclipse,在宣布放棄Eclipse同時,不久Sun表示,他們不再試圖將Sun 發(fā)起的NetBeans.org開放源Java工具項目與Eclipse合并。
Sun公司認為,加入Eclipse陣營需要打破兩個組織之間的技術(shù)和組織差別,而這將對NetBeans和Eclipse項目現(xiàn)有的參與者造成不利影響。Sun公司開發(fā)平臺集團副總裁RichGreen表示,“我們雙方都確定我們不希望放棄現(xiàn)有項目”,“我們確定,合作社團相對于削減成本等問題更為重要。”
Eclipse和NetBeans開放源項目目的是開發(fā)軟件以允許不同的Java開發(fā)工具在單個編程應(yīng)用中能夠相互嵌和。比如,開發(fā)人員可以將一家公司提供的源代碼管理工具與其他公司的代碼編輯器綜合在一起使用。
Green稱,雙方起初討論放棄NetBeans,但很快轉(zhuǎn)而談判尋求將兩個開放源項目統(tǒng)一在一個單一實體下。理論上,將兩個項目和并可以建立一個針對同一技術(shù)的更大社團,并確保兩個項目不會建立不兼容的代碼。但Green表示,如果重寫各自的插件系統(tǒng)以及相關(guān)的工具平臺需要雙方花費很長時間和巨大開銷。比如,Sun的商業(yè)開發(fā)工具建立在NetBeans的基礎(chǔ)上,如果轉(zhuǎn)而采用Eclipse標準則需要進行重大修改。
Sun和IBM Eclipse未能走到一起,在兩大開放源工具項目之間建立起一個鴻溝。Green表示,這樣也為開發(fā)商提供了更多的選擇。并且,Sun仍然希望將來與Eclipse重開談判之門。
相對與Sun的內(nèi)斂相比,Eclipse基金會的執(zhí)行理事Mike Milinkovich要自信得多,在談到老競爭對手時,他說這本來就是一場沒有懸念的戰(zhàn)爭,我們已經(jīng)擁有了足夠多的用戶,而他們沒有,很明顯我們會贏得這場戰(zhàn)爭,我只能祝他們好運。
關(guān)于兩位當(dāng)事人的觀點我們的記者也采訪了香港政府IT部門架構(gòu)師Recher,他說這本身就是一場實力懸殊的競爭,雖然近期 Netbeans是在市場戰(zhàn)略上取得一些佳績,但不能說他們真正的贏得了這場勝利,他只不過是在分享Jbuilder拋棄的市場份額而已,Eclipse 并沒有因為它的增加而減少,Sun公司一直在用一種狹隘的心態(tài)在抵制自已競爭對手,最近和IBM的談判崩裂,以及Sun一直都沒把OSGI列放JMX的標準中,就是很好的例證。
Eclipse未來之路
同時Recher也談到了Eclispe開發(fā)在3個方面占勝了Netbeans.
1. 在技術(shù)上Eclipse是良好的OSGI框架實現(xiàn)(Equinox是OSGi R4 core framework的一個實現(xiàn),而Eclipse IDE是基于Equinox項目開發(fā)的一個典型例子OSGI的好處基本就是面向組件開發(fā),并提供一個十分好用的plugs-in框架,開發(fā)性強。況且 Eclipse本身就是一個RCP的容器---為未來RCP應(yīng)用程序的將來提供不可缺少而且成熟的工具和容器。
2. 在市場上Netbeans支持的項目和工具太少了,因為很多開源項目都提供了大量Eclipse的plugs-in組件,這些是其它IDE 工具無法比擬的, 現(xiàn)在的 IBM已經(jīng)和Eclipse完全整合了(以前的WSAD還不能說完全,但IRAD6.0就已經(jīng)很完全了),同時IBM推出RSA(Rational Software Architect)的工具可以把Eclipse+UML+RUP+IRAD比較完美結(jié)合,至少我認為它是目前出來最好的工具了,整個RUP都可以涵蓋,而且還是支持UML2.0.
3. 在背景方面Eclispe的流行完全是IBM在它萌芽階段進行資金贊助的產(chǎn)物,有了IBM這個藍色巨人的支持, 它的前途無可限量,但是也不能小看了Sun公司的這個冷面殺手,有Sun這個強有力的后盾,雙方以后的競爭會很激烈的.
其實對于Eclipse未來,我們國內(nèi)的架構(gòu)師們只是在應(yīng)用的角度上來看得在這個問題,Mike Milinkovich在9月初的Eclipse 2006世界大會指出了Eclipse未來的發(fā)展和新技術(shù)走向,他告訴我們首先是圍繞富客戶端平臺的繼續(xù)增長和采用。支持更多的語言。下個季度,我們計劃在Eclipse內(nèi)推出首版的PHP IDE項目,我們認為這是一個非常令人激動的項目。因為無論是對企業(yè)開發(fā)者還是Web開發(fā)者來說,PHP是一門非常重要的語言,因此使得Eclipse工具支持PHP是一件令我們激動的事情。
NetBeans未來走向
在IDE開發(fā)工具競爭激烈的今天,Sun也逐步的調(diào)整了Netbeans市場戰(zhàn)略,在今年JavaOne大會上,Netbeans高級宣傳官 Tim Boudreau也談到了Netbeans以后發(fā)展動向,他告訴我們,自從1998年以來,NetBeans并沒有只為Java而工作。它也是C/C++工具的基礎(chǔ),Sun公司已經(jīng)將它轉(zhuǎn)用于Solaris很多年了,對它的支持正在進行擴展化和通用化,不再僅限于Solaris。NetBeans也是HP公司用于OpenVMS的IDE,支持COBOL, Fortran, C/C++和其它語言。例如在今年JavaOne大會上我們演示的對VB的支持—實際上是讀取VB代碼,編譯成字節(jié)碼,然后運行,有時會比它本應(yīng)生成的本地代碼運行還要快。因此,我們已經(jīng)開始了這個項目,也會有圍繞腳本方面的開發(fā)做更多的努力。NetBeans并不一定要局限于Java IDE平臺—它對于Java已經(jīng)有了很大地支持,那是人們首先要考慮的事情。但是就NetBeans目前的發(fā)展來看,它已經(jīng)成為了一個語言無關(guān)的平臺。
正象我們早期提到的,重要的東西的壽命總是很長。一些人聲稱Java會在5或10年里死亡,我們都會迎來下一個大的事物。即使真是那樣, NetBeans也一樣可能會支持下一個事物的到來,但是對一個語言的壽命做假設(shè)的時候,有一件重事情要考慮,對于期望任何特殊的程序語言或范例的盛行周期日益變得更長是很實際的,這有兩方面的原因。首先,我們在繪制人們?nèi)绾慰紤]告訴計算機工作的方式上的藍圖方面正越來越好,其次,一個語言統(tǒng)治的時間越長,它的代碼就會越多,因此移植的代價也就越大。于是你不得不緊跟一些事情,這些事情會強迫變化中的語言很豐富多彩。
現(xiàn)在有很多有關(guān)腳本語言的談?wù)摚俏移诖谥髁骶幊陶Z言中的下一個重大變化是讓直覺上類似多核芯片的并行方式成為規(guī)范標準。我確信在未來的時間里這些目標將會成我們考慮的主流。
從上述的采訪中我們明顯看到了開發(fā)公司的架構(gòu)師對于Eclipse的鐘愛程度,Eclipse已經(jīng)深入人心, Eclipse的強大是顯而易見,記得Ruby剛剛在網(wǎng)上火爆的時候,Eclipse就迅速作出反應(yīng),推出了支持Ruby開發(fā)插件,可是我們在反觀 Netbeas在5.5的版本還沒有這樣的計劃,Java之父Gosling曾說過未來的Netbeans不將是純粹的Java開發(fā)工具,它要涉及各個方面,以后也會支持Ruby開發(fā),可是在他說這些話的時候,Eclipse已經(jīng)在前進的路上了,這難免令所有支持者感到失望,未來的日子,誰將主宰我們都拭目以待。