Eclipse、NetBeans、IntelliJ集成开发工具 Java IDE
Eclipse作為開發Java的IDE,從出現到現在已經有幾年的時間了,其豐富的特性,操作容易和在提高生產力方面收到了廣大開發者的青睞。當然一提到Java?IDE,人們不禁會提到其他Java IDE像NetBeans、IntelliJ等,那么這些Java IDE之間到底存在著哪些異同呢?
因此在Java開發的空間里,對這些主要的IDEs做一個全面的比較是很有必要的,通過比較我們找出這些主要的IDEs在四個通常的開發領域:Swing、JSP/Struts、JavaServer Faces、J2EE/EJB3.0中哪個IDE表現的更出色。本文就從這四個通常的開發領域來比較Eclipse、NetBeans、IntelliJ。
三個IDEs中,Eclipse是唯一個存在多個版本,從基本的版本到預先打包好的帶額外的開源插件(像EasyEclipse)和開源/商業結合的(像MyEclipse)。
NetBeans 5.5
首先,來看NetBeans 5.5,NetBeans 5.5的基本信息如下表:
Vendor:Sun Microsystems
Website:https://netbeans.org/
Price:Free/Open source
Distribution:Base + EnterprisePack + Visual Web Pack
安裝:
NetBeans 5.5,包括它所帶的包(像帶有UML/BPEL/SOA的EnterprisePack和開發JSF的 Visual Web Pack )都既可以作為ZIP文件的形式來下載也可以跨平臺進行安裝。
在Windows平臺下,安裝以后會與操作系統無縫的集成起來,包括桌面的快捷方式和增加安裝/卸載控制面板。
在Linux平臺下,NetBeans 5.5僅僅安裝在一個指定的目錄下并且在GNOME或者KDE桌面上創建了一個啟動的圖標,但是,在Linux平臺下,NetBeans 5.5不能以RPM或者一個.deb文件形式打包在一起,也不能提供一個標準的知識庫,這些知識庫可以使Linux用戶按照其他的應用來安裝NetBeans5.5。
一般特性:
早期的NetBeans版本在開發Swing上速度非常慢,而且界面很不美觀,因此并沒有收到眾多人士的歡迎,自從5的版本以后,NetBeans開發小組已經徹底的改變了這種狀況,NetBeans5.5和JDK 1.6的結合為用戶提供了更為出色的用戶體驗,特別在Windows平臺下(Linux仍然有一些UI上的小問題,預計在NetBeans6.0的版本這些問題會得以改善。在5.5的版本中缺少對本地GTK的外觀支持。)
在Windows系統中,NetBeans 使用起來非常的方便,像收縮/隱藏/切換等功能,面板/編輯器等配置起來也非常的容易,另外,NetBeans的菜單布局也非常有邏輯,使用起來很方便,大多數的一般功能很容易上手,一直以來,NetBeans的穩定性和性能也十分出色。
基本的Java編輯器也是相當好的,雖然在代碼完成方面與其他IDEs相比還遜色一些,但是畢竟還是可以使用的,NetBeans也提供重構的功能(特別是最常用的重命名/移除特性),在一些測試中,它不總是能夠進行上下文感知(context-aware),例如在Struts工程中重命名Action類所在的包,相應的在struts-config.xml中就不能及時的做到同步更新,但是在重構JSFbacking beans和更新在faces-config.xml中的實體方面表現的很好,同時在同步更新J2EE 1.4sessions beans和ejb-jar-xml的實體方面表現的也很好。
Swing開發:
NetBeans包括一系列的特性來開發Swing應用程序,像根據實際文本的位置來進行自動排列,它的強有力的尺寸恢復功能和固定功能使得UI設計器是任何平臺的任何語言都不能比擬的。NetBeans5.5還包括一些新的有助于提高生產力的特性,像自動進行國際化(控制每個窗體/對話框/面板到ResourceBundle包括所有的國際化字符串),使用自定義的窗體/面板(只要他們在你的工程中至少編譯過一次)。
對Swing開發者來說,使用NetBeans可以充分的利用NetBeans的強有力的RCP(Rich Client ?Platform)向導來創建新的,成熟的Swing應用。
JSP/Struts開發:
NetBeans帶有非常好的JSP編輯器,該編輯器包括我們期望的基本的特性,基本的向導和創建一個新的Struts工程。內嵌的Tomcat同期使得開發和調試JSP應用程序都很容易,下圖為NetBeansweb應用向導:
NetBeans web應用向導自動配置web.xml文件和struts-config.xml文件,增加對Tiles和Validator的支持,另外,NetBeans還在struts-config.xml文件中提供了內容菜單選項,用向導的方式來增加ActionForms,Actions和Forwards。提供了非可視化的編輯器來顯示在應用程序中的頁面導航功能,提供對Tiles 和Validators配置的完全支持。
NetBeans 5.5對Struts支持的非常好,但并不像發布文檔說的那樣完美,非可視化的編輯器可以用來編輯JSP或者HTML頁面,對JSP編輯器缺乏對嵌入的JavaScript的支持,JSP編輯器也只帶有一個基本的CSS編輯器(當然安裝上Visual WebPack是更好的)。這些都有待于提高。下如為NetBeans對Struts的支持:
JSF開發:
NetBeans對JSF的支持就像對Struts支持的一樣,提供了一個基本的向導來創建一個工程,包括類庫,配置所有要求的文件等,甚至在JSP編輯器中提供了對backing beans屬性的代碼補全功能。同時包括在faces-config.xml文件中對導航規則的向導。
NetBeans Visual Web Pack提供了一個交互式的解決方案通過從Sun JavaStudio Creator直接移植到NetBeans的特性來構建JSF應用,這包括用來構建web頁面的一個Matisse樣式的GUI構造器,并帶有豐富的JSF控件,這些JSF控件擴展了基本的JSF RI集,同時也支持數據綁定(直接依靠數據庫查詢甚至通過JPA/hibernate)。
盡管Visual Web Pack有一些優點,但是Visual Web Pack也有一些缺點:
1. 缺少對頁面模板的支持(雖然可以保存一個頁面作為一個模板并且作為一個標準使用,但是模板的變化不是級連的),對Facelets的支持或者來自MyFaces對Tiles的支持在這里將是很有用處的。
2. 缺乏對ApacheMyFaces的支持(存在著潛在的問題,當使用MyFaces RI而不是Sun的規范像JBoss部署到一個應用服務器)
3. 不靈活的backingbeans自動產生功能。
另一個主要的特性是支持Facelets,在許多JSF社區中,Facelets被認為是JSP的替代品,尤其是JBoss Seam已經開放了它的所有文檔。
雖然NetBeans一再宣稱下一個發布版本的不足,但是對JSF開發來說,Visual Web Pack是最能提高生產力的工具。
企業開發:
NetBeans 5.5是第一個支持JPA和EJB 3.0的IDE,在自動產生JPA實體類和注釋(包括persistence.xml文件的正確設置,甚至基本的連接信息)可以節省大量的手工編寫代碼的時間,自動產生的JPA代碼的質量非常高并且可以立即使用,第一次使用Matisse開發一個Swing應用和通過JPA查詢/更新一個數據庫所達到的水平是我使用PowerBuilder多年達到的水平。
對純粹的企業開發來講,NetBeans提供了對J2EE 1.4和Java EE?5的支持,特別對J2EE 1.4的項目來說,EJB向導產生了所有要求的代碼(包括business/home/remote接口)。
總之,NetBeans考慮了與J2EE 1.4相關的冗長的代碼,同時提供了對Java EE 5的封裝;NetBeans對部署到GlassFish/Sun Application Server和JBoss上的企業應用提供了官方的支持,而且更新站點為WebLogic和 WebSphere提供了額外的插件。
IntelliJ IDEA?
首先,IntelliJ IDEA 6.0.4的基本信息如下表
Vendor:?JetBrains
Website: ?http://www.jetbrains.com/idea/
Price:?$499.00 ($299.00 upgrade)
安裝:
在Windows下,IDEA提供了exe形式的安裝文件
在Linux下,IDEA的安裝是更為簡單,包括一個TAR.GZ文件,解壓該文件,手動改變到bin子目錄下執行./idea.sh。如果不能正常的執行,可能是因為你沒有正確的設置$JDK_HOME環境變量,設置$JDK_HOME在.bashrc文件中:
export ?JDK_HOME=/home/jacek/Devhttp://java.chinaitlab.com/JDK/jdk1.6.0_01
export ?JAVA_HOME=/home/jacek/Devhttp://java.chinaitlab.com/JDK/jdk1.6.0_01
在Linux版本中,JetBrains并沒有提供標準的.deb或者RPM文件來進行安裝,因此,安裝以后沒有桌面快捷方式或者創建K Menu實體,更糟糕的是,雙擊bin/idea.sh文件也不能啟動(返回的錯誤是沒有設置JAVA_HOME,雖然已經正確的設置了),所以必須的手動地轉到命令行執行./idea.sh以正常啟動,這點在三個IDEs中是最差的。
一般特性:
與NetBeans一樣,IDEA提供了靈活的布局,在各種配置中截短/鎖定/浮動 面板的功能,但它沒有NetBeans(Windows系統下)那樣流暢和可配置。
相對IDEA杰出的編輯器來講,這些只是一些小問題,IDEA的編輯器是非常快的,具有對敏感內容的顏色凸顯,提示和彈出建議框的功能,使用IDEA的時間越長,編程的效率就會越高。下圖為一個簡單的IDEA編輯器和高級的顏色/語法突出顯示:
JSP/Struts開發:
IDEA可以自動的建立配置文件(包括Tiles 和Validator),下載所有需要的Struts類庫,它也提供了一個Struts助手,提供圖形化的編輯器和向導來進行Struts配置,包括tiles-config.xml 和validation.xml文件。
IDEA沒有JSP/HTML頁面的可視化編輯器,其規則的IDEAJSP/HTML編輯器即使沒有一個可視化的組件也是非常好看的,支持嵌入的JavaScript,特別是能夠處理DHTML或者AJAX代碼,JavaScript編輯器也支持指定的瀏覽器(IE,Mozilla和 Opera)和流行的AJAX礦見像Dojo, Bindows和 Prototype。
JSF 開發
對JSF 開發的支持應該比其他的IDE更好,提供了更成熟的JSF功能,包括對faces-config.xml進行可視化編輯,代碼自動裝配,在JSP頁面管理 bean的屬性,新的管理bean的向導,可視化編輯器建立Converters,?RenderKits和Validators。Eclipse還計劃發布可視化的JSP/JSF編輯器。
企業開發:?
????Eclipse并沒有對JPA提供官方的支持,但它提供了一個叫Dali的孵化器項目來連接到發布的功能,目前它處于開發的早期階段,雖然能夠從一個數據庫中產生實體,但是它產生的代碼沒用NetBeans產生的好(例如沒有任何自動創建的指定的查詢),如果你沒有從事JPA開發而正在使用Hibernate,MyEclipse是一個不錯的選擇。?
????對J2EE開發,Eclipse支持創建EJB和EAR模塊,為了避免J2EE的復雜性,Eclipse專注通過XDoclet來產生EJB,這無疑是一個很好的解決方案,減少了企業應用的復雜性。MyEclipse擴展了這些功能通過提供session?beans,消息驅動beans向導和容器管理持久化beans,同時也被XDoclet驅動。?
????目前,Eclipse和MyEclipse都沒有支持Java?EE?5,在將來的版本中應該會提供對Java?EE?5的支持。
總結:?
????對不同的IDE,每個人有著不同的見解,同時每個IDE也有著不同的特性和優點,根據開發的不同需要可能會選擇不同的IDE。?
????在Java開發的每個方面,每個IDE都能勝任工作,然而根據你所做的不同開發如Swing開發,web開發,或者企業開發,我們會選擇不同的IDE。?
????Swing開發:?
????如果你專門從事Swing開發,NetBeans無疑是最好的選擇,如果你沒有選擇NetBeans而是選擇了Eclipse,建議使用MyEclipse?和它的Matisse4Eclipse構造器。IDEA由于對JGoodies?Forms的支持,所以在開發Swing方面與前兩者相比并不占有優勢。?
????JSP/Struts開發:?
????開發JSP/Struts首選的是IDEA,接下來是MyEclipse,然后是NetBeans,由于缺少對內建Struts的支持,Eclipse的基本版本沒有競爭優勢。?
????JSF開發:?
????在開發JSF方面,這三個IDE可以說都是很好的選擇,但是IDEA可能會更好一點,接下來是Eclipse/MyEclipse,最后是NetBeans。?
????企業開發:?
????由于NetBeans對JPA的支持和它產生代碼的質量以及對持久化單元合適的設置,所以在企業開發方面,NetBeans是首選,接下來是IDEA,由于Eclipse的Dali項目的限制,Eclipse可能是最后選擇的。如果放棄標準的JPA,從事Hibernate開發,MyEclipse是最好的選擇。?
????IDEA由于對J2EE?和?Java?EE?5支持的很好,所以很適合進行企業開發,Eclipse缺少對Java?EE?5的支持,應該是最后的選擇。
參考推薦:
Eclipse、NetBeans、IntelliJ
Eclipse NetBeans IntelliJ的實用對比
ECLIPSE、NETBEANS、INTELLIJ對比
from:?http://blog.csdn.net/ithomer/article/details/9350461
總結
以上是生活随笔為你收集整理的Eclipse、NetBeans、IntelliJ集成开发工具 Java IDE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java assertion 介绍和用法
- 下一篇: Spring分布式事务实现