
編輯推薦:Java新手寶典
隨著Java應用程序越做越大、越做越復雜。Java IDE在其中所起的作用也日益顯著。有了Java IDE,使軟件的生產率倍增。但目前Java IDE的種類繁多,功能也各不相同。這就給我們的選擇帶來了諸多不便。因此,本文就目前比較流行的幾種Java IDE做了一個深入的對比。主要比較4種Java IDE,它們是Eclipse、Netbeans、Jbuilder和Jcreator。本文將從以下8個方面進行探討。
一、 Java IDE介紹
1. Eclipse
Eclipse是一個非常成功的開源項目。在世紀之交的時候,IBM為了對抗微軟越來越強的壟斷地位,投入了10億美元進行Linux、pc、筆記本電腦以及服務器等產品的研發。在這一系列舉措中,影響最深遠的就是Eclipse。
Eclipse是IBM“日獨計劃”的產物。在2001年6月,IBM將價值4000萬美元的Eclipse捐給了開源組織。Eclipse由四個計劃組成:Eclipse Project、Eclipse Tools Project、Eclipse Technology Project和Eclipse Web Tools Platform Project。每一個計劃都遵照CPL1.0協議發布。經過幾年的發展,Eclipse已經成為目前最流行的Java IDE。并且擁有了很多的Eclipse社區和新聞組。目前,Eclipse已經成為開發Java程序的首選IDE。
2. Netbeans
Netbeans是Sun自己的開源Java IDE。隨著Eclipse逐漸興起,Sun也在試探性地向Eclipse靠攏。但同時又在不移余力地開發自己的Java IDE:Netbeans。Netbeans在功能上和Eclipse類似。但和Eclipse也有一此區別。如Netbeans集成了Web開發以及最近流行的ajax,而Eclipse要想達到這一點,必須得安裝其它的第三方插件。還有Eclipse鼓勵使用SWT做為Java的GUI庫,而Netbeans使用的是更純正的Java GUI庫:Swing/AWT。
3.Jbuilder
Jbuilder是Borland開發的Java IDE。它在Eclipse和Netbeans出現之前是非常流行了。原因很簡單,因為那時Jbuilder是唯一能夠真正稱得上IDE的產品。但在Eclipse和Netbeans出現之后Jbuilder就每況愈下。發生這種情況的原因很多。可能是因為Jbuilder是收費的,而Eclipse和Netbeans是免費的;也可能是因為Borland的產品有一個最大的缺點。就是不管功能多強,而它的代碼編輯器和其它輔助書寫代碼的工具差不多未發生什么變化。從Jbuilder2和Jbuilder9好像都差不多。
4. Jcreator
以上介紹的都是大家伙。而Jcreator則是一個輕量型的Java IDE。它的功能非常單一。最核心的功能就是可能編寫Java源程序,并且支持代碼變色和code complete。但Jcreator有一個最顯著的優點。就是運行速度快,并且占用資源少。這主要是因為Eclipse、Netbeans和Jbuilder本身都是使用Java編寫的。在啟動時必須得先啟動Java虛擬機。而Jcreator使用的是本地代碼。因而速度更快。如果你的機器配置不高(如只有64M或128M內存),還是使用Jcreator為好。
二、 Java IDE是否能跨平臺
由于Java是跨平臺的,因此,它的IDE最好也能跨平臺。由于Eclipse、Netbeans和Jbuilder都是使用Java編寫的,因此它們也是跨平臺的。但由于Eclipse采用的GUI接口是SWT。而這個庫并未加入Sun JCP。因此,Eclipse的跨平臺要受到SWT的限制,即SWT所能跨的平臺數也就是Eclipse所跨的平臺數。而對于Jcreator來說,目前只有Windows版本。這也不能不說是一個遺憾。不過由于大多數的Java開發都是在Windows上,因此。支持Windows平臺是幾乎是所有的Java IDE最先考慮的事情。
三、 Java IDE是否收費
這個問題是決定一個IDE是否能夠流行的重要原因之一。眾所周知,如果一個軟件是收費的,那么獲得這個軟件的方法一般有兩種。一種是購買正版的軟件。另一種就是使用盜版的軟件。而在一些對盜版打擊很嚴厲的國家可能使用正版軟件就成為最佳的選擇。然而,使用正版軟件將會帶來很大的成本。所以一但有一種或幾種免費的軟件,并且在功能上足可以取代收費軟件時,人們就會馬上轉向這些免費的軟件。在上述的4種Java IDE中Eclipse和Netbeans不僅是完全免費的,而且是開源的。因此,它們一出現,就對收費Jbuilder產生了很大的威脅。目前Eclipse和Netbeans的使用率已經超過了Jbuilder。而Jcreator雖然也是收費的。但是費用也并不高。因此,以Jcreator為首的一些小型的Java IDE以其體積小,占用系統資源少等優點也會占有一定的比例(盡管這個比例并不大)。
四、 Java IDE的界面友好程度
界面是否友好是決定一個IDE是否成功的另一個重要原因。對于界面來說,Eclipse和Netbeans差不多。只是Eclipse是使用SWT開發的。因此,它的界面看起來更像是本地的程序。而Netbeans的界面風格是Java的標準風格。
圖1 Eclipse的界面
圖2 Netbeans 的界面
五、 Java IDE是否可以支持GUI、Web、Mobile的開發
Java除了最簡單的控制臺方式。還能以其它方式運行。如Java可以通過圖形庫SWT、Swing或AWT以GUI方式運行。或者是利用Tomcat、Weblogic等應用程序服務器以Web方式運行。
一個優秀的Java IDE應該支持這些功能的可視化開發。雖然目前支持Java GUI的IDE還不多,但還是有一些可以用。在Eclipse中雖然沒有提供GUI可視化開發功能,但可以使用第三方的插件進行GUI的開發。如免費的Assisi和Jigloo插件。Eclipse不僅有開發GUI的插件,而且還有開發Web、J2EE以及Mobile的各種插件。有了這些插件,大大豐富了Eclipse的功能。
圖3 Jigloo的設計界面
Netbeans和Eclipse一樣,也支持插件。Netbeans本身在安裝時自帶了Web開發功能。因此,無需安裝用于開發Web的插件。要想讓Netbeans開發GUI程序,需要下載Kalideoscope插件。
圖4 Kalideoscope 插件設計界面
Eclipse和Netbeans在GUI、Web等開發上都可以通過插件解決。因此,只要有人為它們開發插件。從理論上它們可以開發任何形式的應用程序。
由于Jbuilder是Borland推出的商業版本的Java IDE。因此,它在發布時就已經集成了這些功能。例如使用Jbuilder可以開Application、Applet、Web、Mobile等應用程序。因此,Jbuilder在各種功能的集成方面要優于Eclipse和Netbeans。
而對于Jcreator,它只能用于開發簡單的控制臺Java程序。就算用它開發GUI等形式的Java程序,也是非可視化的。因此,Jcreator只能用于學習或開發小型的項目。而要開發大型的項目,還是使用Eclipse、Netbeans或Jbuilder為好。
六、 Java IDE能進行非Java語言的開發嗎
Eclipse之所以受到青睞,除了它的界面友好、免費開源外。還有賴于Eclipse不僅可以開發Java應用程序,也可以開發非Java應用程序。如使用CDT插件可以開發C/C++應用程序。通過不同的Eclipse插件。在Eclipse上可以開發C/C++、Ruby、php、perl等程序。
Netbeans在這方面略遜色于Eclipse。但Sun在這方面已經加大了投入。在Netbeans5.0及以后版本將支持C/C++的開發。相信在Netbeans的使用率逐漸上升的同時,會有更多的人為Netbeans開發相應的插件。到時Netbeans一定可以和Eclipse一分高下。畢竟,Sun不想讓Netbeans成為下一個Jbuilder。
Jbuilder雖然也支持插件開發,但由于Borland未向外公布其插件標準。所以很少有人為Jbuilder開發插件。這也許是Jbuilder逐漸走向沒落的原因之一吧!因此,Jbuilder到現在為止只能開發Java程序。
Jcreator不支持插件功能。它只能用于開發Java程序。這也是很多輕量IDE的共性。
七、 Java IDE是否支持插件功能
上面多次提供“插件”。而上述的4種Java IDE只有Eclipse和Netbeans支持插件功能,并且可以使用它們本身設計插件。
Eclipse提供了插件工程。開發人員可以利用插件工程為Eclipse建立各種插件。Eclipse的插件由兩個目錄features和plugins組成。安裝插件時將這兩個目錄直接復制到Eclipse的安裝目錄即可。
圖5 Eclipse建立插件工程的界面
Netbeans也提供了類似Eclipse的插件工程的功能。但它們最大的不同是Netbeans將插件包在了一個*.nbm文件,而Eclipse是將插件放到了兩個目錄中。Netbeans在安裝插件時需要使用Tools->Module Manager進行安裝。
圖6 Netbeans建立插件工程的界面
目前Java IDE雖然很多。但歸納起來不外乎三個陣營。以IBM為首的Eclipse、Sun的Netbeans和Borland的Jbuilder。這三種Java IDE要數Eclipse的勢頭最猛。
在Eclipse之前,IBM有一個Java IDE:Visual Age。但這個Java IDE并不成功。在1998年,IBM啟動了Eclipse計劃。IBM啟動Eclipse計劃的目的主要是為了和Webshpere studio集成,以及和Microsoft的Visual studio競爭。在不斷地摸索中,IBM終于發現通過免費開源的方式最有可能達到這一目的。于是在2001年11月,IBM向開源社區捐獻了Eclipse的源代碼。從此,Eclipse進入了高速發展的軌道。從Eclipse的飛速發展可以看出,當年IBM決定將Eclipse免費開源是非常正確的。
在Eclipse發展的最初幾年,IBM邀請了很多公司加入到Eclipse項目中。其中包括一些 IBM 的競爭對手 WebGain、Borland, 還有一些盟友如 Rational(Rational 當時還沒有被 IBM 收購)。這些公司的主要任務是支持并促進Eclipse的發展。
目前Eclipse項目有100多個,其中有一多半是IBM參與的。而參與Eclipse項目的公司也非常多。但仍有很多業界的成員沒有加入。這主要是因為Eclipse的幕后老板是IBM。這些公司可能是擔心日后Eclipse會受治于IBM。IBM也逐漸意識到了這一點。于是,在2004年,IBM和其他成員公司合作起草了管理條例,成立了Eclipse基金會(Eclipse Foundation)。這個基金會是獨立于IBM動作的。
Eclipse策略部總經理John Kellerman接收采訪時說:IBM在2005設立了一些Eclipse創新基金和獎學金。IBM承諾在未來幾年內一如既往地參與Eclipse的研究和開發。并在某些項目上減少IBM的參與。從而使Eclipse成為相對獨立的開源產品。
從Join的話可以看出,IBM打算在資金上大力資助Eclipse的同時,盡量減少在Eclipse項目上的參與。這將有利于Eclipse更好地發展。從而吸引更多的公司參與Eclipse項目的開發。IBM在支持Eclipse的同時,它的五大旗艦產品,如DB2、WebShpere、Rational等。也都將基于Eclipse。這樣,它們將擁有統一的界面風格,并且開發這些產品的技術人員無需關注Eclipse,而只需要將精力放在自己的產品上即可。因此,Eclipse在IBM、開源社區以及眾多的成員公司的支持下,未來的發展將充滿著陽光。
然而Eclipse最近也面臨著新的挑戰,這就是來自Sun的Netbeans。早期的Netbeans真是讓人受恨交加。雖然Netbeans是Java的始作俑者Sun公司開發的。但Sun公司在軟件方面除了Java成功以外,其它的都不怎么出眾。但自從Netbeans5.0發布以來。Netbeans的處境似乎有所改善。
在以前,Netbeans一直只是Java的開發工具,而從Netbeans5.0開始,Netbeans開始支持C/C++。Sun承諾,以后的Netbeans將支持更多的開發語言。從這一點我們可以看出,Netbeans將成為和語言無關的IDE。
在新版的Netbeans中,圖形接口設計部分也非常出眾。在每個操作系統平臺都有自己的圖形用戶接口。如在Windows、Linux、蘋果操作系統都有自己的UI設計器。而且這些新的UI設計器有些象Visual Studio 2005的UI設計器。如要將某幾個控件如Jbutton、Jlabel水平或垂直對齊,在這些控件的水平或垂直方向就會出現一條基準線。這樣,用戶很容易就會將它們對齊。Sun在為Netbeans增加新功能的同時,新版Netbeans在運行速度上也有顯著的提高。
Sun對外宣稱,未來的Netbeans將在易用性、多語言支持、插件等方面得到加強。由于Sun是Java的開發者,因此,Netbeans將會率先支持Java的最新版本。因此,從上述可以看出,Netbeans在不久的將來一定會成為Eclipse的強勁對手。
對于Borland的Jbuilder,也曾有過輝煌。但是近幾年由于Borland過快地推出新版本,使得Jbuilder以及其它的IDE產品的質量開始下滑。同時由于Borland高層的決策失誤。使得Jbuilder和其它的IDE產品,如Delphi、C++ builde落到了沿街叫賣的地步。但在Jbuilder2006時Borland宣布Jbuilder將以Eclipse作為其底層的基礎構架。這樣,在Eclipse中運行的插件也可以運行在Jbuilder2006中了。這也許是個好消息。但Jbuilder目前的買主還不確定。因此,它未來的前途也會因其買主的不同而不可預料。如果Jbuilder能夠屬于一個支持Eclipse和開源的公司或組織。那么Jbuilder的高度集成以及其強大的功能,一定會大大加強Eclipse的市場占有率。
總之,目前參也Java IDE競爭的主要有Eclipse和Netbeans。也許將來Jbuilder的勢頭也會上來。形成Java IDE的三足鼎立之勢。現在還很難說哪一個IDE產品會最終勝出。最大的可能是這三種Java IDE將會長期的并存(就象數據庫市場的SQL Server、Oracle和IBM DB2一樣)。2006年是Java IDE混戰的一年。但最終得益的卻是用戶。但愿這些IDE產品在互相競爭中變得更加強大、易用,以使用戶有更多、更好的選擇。