Java IDE實(shí)用對(duì)比:Eclipse、NetBeans、IntelliJ(一)
Eclipse作為開發(fā)Java的IDE,從出現(xiàn)到現(xiàn)在已經(jīng)有幾年的時(shí)間了,其豐富的特性,操作容易和在提高生產(chǎn)力方面收到了廣大開發(fā)者的青睞。當(dāng)然一提到Java IDE,人們不禁會(huì)提到其他Java IDE像NetBeans,IntelliJ等,那么這些Java IDE之間到底存在著哪些異同呢?因此在Java開發(fā)的空間里,對(duì)這些主要的IDEs做一個(gè)全面的比較是很有必要的,通過比較我們找出這些主要的IDEs在四個(gè)通常的開發(fā)領(lǐng)域:Swing, JSP/Struts, JavaServer Faces和 J2EE/EJB 3.0中哪個(gè)IDE表現(xiàn)的更出色。本文就從這四個(gè)通常的開發(fā)領(lǐng)域來(lái)比較Eclipse, NetBeans,IntelliJ。
在三個(gè)IDEs中,Eclipse是唯一個(gè)存在多個(gè)版本,從基本的版本到預(yù)先打包好的帶額外的開源插件(像EasyEclipse)和開源/商業(yè)結(jié)合的(像MyEclipse)。
NetBeans 5.5:
首先來(lái)看NetBeans 5.5,NetBeans 5.5的基本信息如下表:
Vendor:Sun Microsystems;Website:www.netbeans.orgPrice:Free/Open sourceDistribution:Base + EnterprisePack + Visual Web Pack
安裝:
NetBeans 5.5,包括它所帶的包(像帶有 UML/BPEL/SOA的Enterprise Pack和開發(fā)JSF的 Visual Web Pack )都既可以作為ZIP文件的形式來(lái)下載也可以跨平臺(tái)進(jìn)行安裝。在Windows平臺(tái)下,安裝以后會(huì)與操作系統(tǒng)無(wú)縫的集成起來(lái),包括桌面的快捷方式和增加安裝/卸載控制面板。在Linux平臺(tái)下,NetBeans 5.5僅僅安裝在一個(gè)指定的目錄下并且在GNOME或者KDE桌面上創(chuàng)建了一個(gè)啟動(dòng)的圖標(biāo),但是,在Linux平臺(tái)下,NetBeans 5.5不能以RPM或者一個(gè).deb文件形式打包在一起,也不能提供一個(gè)標(biāo)準(zhǔn)的知識(shí)庫(kù),這些知識(shí)庫(kù)可以使Linux用戶按照其他的應(yīng)用來(lái)安裝NetBeans 5.5。
一般特性:
早期的NetBeans版本在開發(fā)Swing上速度非常慢,而且界面很不美觀,因此并沒有收到眾多人士的歡迎,自從5的版本以后,NetBeans開發(fā)小組已經(jīng)徹底的改變了這種狀況,NetBeans 5.5和JDK 1.6的結(jié)合為用戶提供了更為出色的用戶體驗(yàn),特別在Windows平臺(tái)下(Linux仍然有一些UI上的小問題,預(yù)計(jì)在NetBeans 6.0的版本這些問題會(huì)得以改善。在5.5的版本中缺少對(duì)本地GTK的外觀支持。)
在Windows系統(tǒng)中,NetBeans 使用起來(lái)非常的方便,像收縮/隱藏/切換等功能,面板/編輯器等配置起來(lái)也非常的容易,另外,NetBeans的菜單布局也非常有邏輯,使用起來(lái)很方便,大多數(shù)的一般功能很容易上手,一直以來(lái),NetBeans的穩(wěn)定性和性能也十分出色。
基本的Java編輯器也是相當(dāng)好的,雖然在代碼完成方面與其他IDEs相比還遜色一些,但是畢竟還是可以使用的,NetBeans也提供重構(gòu)的功能(特別是最常用的重命名/移除特性),在一些測(cè)試中,它不總是能夠進(jìn)行上下文感知(context-aware),例如在Struts工程中重命名Action類所在的包,相應(yīng)的在struts-config.xml中就不能及時(shí)的做到同步更新,但是在重構(gòu)JSF backing beans和更新在faces-config.xml 中的實(shí)體方面表現(xiàn)的很好,同時(shí)在同步更新J2EE 1.4 sessions beans和ejb-jar-xml的實(shí)體方面表現(xiàn)的也很好。
Swing開發(fā):
NetBeans包括一系列的特性來(lái)開發(fā)Swing應(yīng)用程序,像根據(jù)實(shí)際文本的位置來(lái)進(jìn)行自動(dòng)排列,它的強(qiáng)有力的尺寸恢復(fù)功能和固定功能使得UI設(shè)計(jì)器是任何平臺(tái)的任何語(yǔ)言都不能比擬的。NetBeans 5.5還包括一些新的有助于提高生產(chǎn)力的特性,像自動(dòng)進(jìn)行國(guó)際化(控制每個(gè)窗體/對(duì)話框/面板到ResourceBundle包括所有的國(guó)際化字符串),使用自定義的窗體/面板(只要他們?cè)谀愕墓こ讨兄辽倬幾g過一次)。
對(duì)Swing開發(fā)者來(lái)說,使用NetBeans可以充分的利用NetBeans的強(qiáng)有力的RCP(Rich Client Platform)向?qū)?lái)創(chuàng)建新的,成熟的Swing應(yīng)用。
JSP/Struts開發(fā):
NetBeans帶有非常好的JSP編輯器,該編輯器包括我們期望的基本的特性,基本的向?qū)Ш蛣?chuàng)建一個(gè)新的Struts工程。內(nèi)嵌的Tomcat同期使得開發(fā)和調(diào)試JSP應(yīng)用程序都很容易,下圖為NetBeans web應(yīng)用向?qū)В?/p>
NetBeans web應(yīng)用向?qū)ё詣?dòng)配置web.xml文件和struts-config.xml文件,增加對(duì)Tiles和Validator的支持,另外,NetBeans還在struts-config.xml文件中提供了內(nèi)容菜單選項(xiàng),用向?qū)У姆绞絹?lái)增加ActionForms, Actions和Forwards。提供了非可視化的編輯器來(lái)顯示在應(yīng)用程序中的頁(yè)面導(dǎo)航功能,提供對(duì)Tiles 和Validators配置的完全支持。
NetBeans 5.5對(duì)Struts支持的非常好,但并不像發(fā)布文檔說的那樣完美,非可視化的編輯器可以用來(lái)編輯JSP或者HTML頁(yè)面,對(duì)JSP編輯器缺乏對(duì)嵌入的JavaScript的支持,JSP編輯器也只帶有一個(gè)基本的CSS編輯器(當(dāng)然安裝上Visual Web Pack是更好的)。這些都有待于提高。下如為NetBeans對(duì)Struts的支持:
;JSF開發(fā):;NetBeans對(duì)JSF的支持就像對(duì)Struts支持的一樣,提供了一個(gè)基本的向?qū)?lái)創(chuàng)建一個(gè)工程,包括類庫(kù),配置所有要求的文件等,甚至在JSP編輯器中提供了對(duì)backing beans屬性的代碼補(bǔ)全功能。同時(shí)包括在faces-config.xml文件中對(duì)導(dǎo)航規(guī)則的向?qū)А?;;;;;NetBeans Visual Web Pack提供了一個(gè)交互式的解決方案通過從Sun Java Studio Creator直接移植到NetBeans的特性來(lái)構(gòu)建JSF應(yīng)用,這包括用來(lái)構(gòu)建web頁(yè)面的一個(gè)Matisse樣式的GUI構(gòu)造器,并帶有豐富的JSF控件,這些JSF控件擴(kuò)展了基本的JSF RI集,同時(shí)也支持?jǐn)?shù)據(jù)綁定(直接依靠數(shù)據(jù)庫(kù)查詢甚至通過JPA/Hibernate)。;;盡管Visual Web Pack有一些優(yōu)點(diǎn),但是Visual Web Pack也有一些缺點(diǎn):;;;;;;1. 缺少對(duì)頁(yè)面模板的支持(雖然可以保存一個(gè)頁(yè)面作為一個(gè)模板并且作為一個(gè)標(biāo)準(zhǔn)使用,但是模板的變化不是級(jí)連的),對(duì)Facelets的支持或者來(lái)自MyFaces對(duì)Tiles的支持在這里將是很有用處的。;;;;;;2. 缺乏對(duì)Apache MyFaces的支持(存在著潛在的問題,當(dāng)使用MyFaces RI而不是Sun的規(guī)范像JBoss部署到一個(gè)應(yīng)用服務(wù)器);;;;;;3. 不靈活的backing beans自動(dòng)產(chǎn)生功能。;;另一個(gè)主要的特性是支持Facelets,在許多JSF社區(qū)中,F(xiàn)acelets被認(rèn)為是JSP的替代品,尤其是JBoss Seam已經(jīng)開放了它的所有文檔。;;雖然NetBeans一再宣稱下一個(gè)發(fā)布版本的不足,但是對(duì)JSF開發(fā)來(lái)說,Visual Web Pack是最能提高生產(chǎn)力的工具。;;; 企業(yè)開發(fā):; NetBeans 5.5是第一個(gè)支持JPA和EJB 3.0的IDE,在自動(dòng)產(chǎn)生JPA實(shí)體類和注釋(包括persistence.xml文件的正確設(shè)置,甚至基本的連接信息)可以節(jié)省大量的手工編寫代碼的時(shí)間,自動(dòng)產(chǎn)生的JPA代碼的質(zhì)量非常高并且可以立即使用,第一次使用Matisse開發(fā)一個(gè)Swing應(yīng)用和通過JPA查詢/更新一個(gè)數(shù)據(jù)庫(kù)所達(dá)到的水平是我使用PowerBuilder多年達(dá)到的水平。 對(duì)純粹的企業(yè)開發(fā)來(lái)講,NetBeans提供了對(duì)J2EE 1.4和Java EE 5的支持,特別對(duì)J2EE 1.4的項(xiàng)目來(lái)說,EJB向?qū)Мa(chǎn)生了所有要求的代碼(包括business/home/remote接口),總之,;;;;;;NetBeans考慮了與J2EE 1.4相關(guān)的冗長(zhǎng)的代碼,同時(shí)提供了對(duì)Java EE 5的封裝。;;NetBeans對(duì)部署到GlassFish/Sun Application Server和JBoss上的企業(yè)應(yīng)用提供了官方的支持,而且更新站點(diǎn)為WebLogic和 WebSphere提供了額外的插件。;
相關(guān)文章:
1. MessagePack 和System.Text.Json 序列化和反序列化性能及對(duì)比分析2. Laravel?Eloquent的九個(gè)實(shí)用特性詳解3. PHP生成隨機(jī)密碼4種方法及性能對(duì)比4. 簡(jiǎn)單實(shí)用的php緩存函數(shù)5. python 實(shí)用工具狀態(tài)機(jī)transitions6. PHP 與 Perl 語(yǔ)言對(duì)比7. Python 的 __str__ 和 __repr__ 方法對(duì)比8. Django bulk_create()、update()與數(shù)據(jù)庫(kù)事務(wù)的效率對(duì)比分析9. Java反射獲取實(shí)例的速度對(duì)比分析10. Java 抽象類與接口的對(duì)比
