三大高手,哪個JAVA編程IDE最適合你?

Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。

給你java學習路線:html-css-js-jq-javase-數據庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

每個Java開發人員都需要一個代碼編輯器或IDE,可以幫助我們在編寫Java、使用類庫和框架的時候處理一些復雜、麻煩的場景,最常見的就是糾錯。哪個編輯器或IDE最適合你,取決于幾件事情:項目的性質,你在組織中的角色,團隊使用什么開發過程,程序員的水平和技能。 另外考慮的是團隊是否對工具進行了標準化,以及個人喜好。

最常用于服務器端Java開發的三個IDE是IntelliJ IDEA,Eclipse和NetBeans。 然而,這些并不是唯一的選擇,也是時候也可以考慮一些輕量級的IDE。

下面通過在MacBook Pro上,對幾個開源項目使用IntelliJ IDEA Ultimate 2016.2,Eclipse Neon Java EE和NetBeans 8.1 Java EE對比一下三種IDE。

基本問題:你需要Java IDE幫你做什么事情

首先,你可能需要IDE支持JAVA 8,Scala,Groovy,其他JVM語言。還需要支持主要的應用服務器和最流行的Web框架,包括Spring MVC,JSF,Struts,GWT,Play,Wicket,Grails和Vaadin。IDE應與開發團隊使用的任何構建和版本控制系統兼容,例如Ant,Maven和/或Gradle,以及Git,SVN,CVS,Mercurial或Bazaar。

更多一點的要求,包括能處理客戶端和數據庫層,支持嵌入式JavaScript,TypeScript,HTML,SQL,JavaServer Pages,Hibernate和Java Persistence API。

最后,Java IDE應該可以讓你輕松編輯,構建,調試和測試系統。理想情況下,不僅可以完成智能代碼,還可以重構和做代碼質量檢測。如果你采用了測試驅動的開發模式,IDE還需要支持你的測試框架。如果你的團隊使用CI或BUG跟蹤系統,則IDE最好連接到它們。如果你需要部署到容器和云上并進行調試,則IDE應該對此提供幫助。

IntelliJ IDEA

IntelliJ IDEA是首屈一指的Java IDE,兩個版本:免費的社區版和付費的終極版。

社區版可用于JVM和Android開發。支持Java,Kotlin,Groovy,Scala;Android;Maven,Gradle,SBT; Git,SVN,Mercurial和CVS。終極版用于Web和企業開發的除了Git,SVN,Mercurial和CVS之外,還支持Perforce,ClearCase和TFS;JavaScript和TypeScript;Java EE,Spring,GWT,Vaadin,Play,Grails等框架; 還有數據庫工具。

商業的終極版通過提高程序員的生產力來獲得收益。對于學生,老師和開放源代碼開發者而言都是免費的。

IntelliJ IDEA深入了解你的代碼,開發人員的人體工程學,有內置的開發人員工具,通曉數種語言的編程經驗。

小編推薦一個學Java的學習裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!

IntelliJ IDEA用類似lint的方式對Java代碼做了靜態分析,顯示了一些警告和建議。 可以通過點擊它們展開這些,如下所示。在許多情況下,還可以獲得如何快速修復操作的選擇列表。

深入分析代碼

Java編輯器通常都會給出語法著色和簡單的代碼完成提示。除此之外,IDEA還能提供“智能完成”,這意味著它可以彈出在當前上下文中的最可能的相關符號或操作列表,并且按你的個人使用頻率排列。更智能的是“鏈式完成”,它顯示的是適合當前上下文的方法或getter列表。IDEA還能幫助完成靜態成員或常量,import語句的導入。

Java代碼經常以字符串的形式,把其他語言包括在代碼中。IDEA可以將SQL,XPath,HTML,CSS或JavaScript代碼的片段注入Java字符串文字。重構的時候,IDEA也能充分考慮到這些表示其他語言的字符串。比如,如果在JPA語句中重命名一個類,IDEA也能更新相應的實體類和JPA表達式。

當重構一段代碼時,如果我們在其他地方也有這段代碼的拷貝的話,通常我們也需要對這些拷貝進行重構。 IDEA Ultimate(終極版)可以檢測重復和類似的片段,并一次性將同樣的的重構應用于這些拷貝。

IntelliJ IDEA在讀取代碼以及你輸入代碼的時候,就在分析這些代碼。它提供了一些指示來指出可能的問題。如果需要的話,也會列出快速修復這些問題的建議列表。

開發人員人體工程學

IntelliJ設計IDEA的時候,充分考慮了開發人員的工作流程中很重要的一點,也就是“在區域中”。上圖所示的項目工具窗口通過簡單的鼠標點擊就會從視圖中消失,你可以專注于代碼編輯器。編輯時要做的一切都具有鍵盤快捷鍵,包括在彈出窗口中顯示一些符號定義。學習捷徑確實需要時間和實踐當然不知道快捷方式,開發人員也可以輕松快速地學習使用IDEA。

IDEA的調試器設計非常友好。變量值在編輯窗口的右邊展示,靠近相對應的代碼。當時某個變量狀態改變的時候,會高亮顯示。

IDEA還集成了構建工具,單元測試的運行和覆蓋率檢查工具,以及內置的終端窗口。IntelliJ沒有自己的性能分析工具,但它通過插件來支持。這些包括由前IntelliJ主要開發人員創建的YourKit和VisualVM。IntelliJ IDEA為大多數的版本控制系統提供了接口,包括Git,SVN,Mercurial,CVS,Perforce和TFS。你可以在IDE中管理所有的代碼變化。IntelliJ IDEA還有個插件,可以把源代碼塊中的最后一次更改將作為注釋顯示在編輯器窗口中。

IntelliJ IDEA支持所有主流的JVM應用服務器,并且可以在服務器中進行部署和調試,為Enterprise Java開發人員解決一個痛點。IDEA通過添加Docker工具窗口的插件來支持Docker。

多語言編程

IDEA已經擴展了針對Spring,Java EE,Grails,Play,Android,GWT,Vaadin,Thymeleaf,Android,React,AngularJS等框架的編碼協助。并非所有這些都是Java框架。除Java之外,IDEA也能理解許多其他語言,包括Groovy,Kotlin,Scala,JavaScript,TypeScript和SQL。如果您需要更多的話,目前有大約19種IntelliJ語言插件,包括R,Elm和D的插件。

Eclipse

Eclipse是最流行的Java IDE,免費且開源。主要用Java編寫,但同時它的插件架構允許Eclipse以其他語言進行擴展。Eclipse起源于2001年,是一個IBM項目,目的是開發一個可移植的基于Java的IDE來替代基于Smalltalk的IBM Visual Age系列IDE。該項目的重要目標是針對Microsoft,要打敗微軟在工具市場上的領導地位,引領大家到Java開發上來,因此要做的事情是要吞噬微軟的市場,這就叫“Eclipse”。在中文里面,eclipse作名詞用就是“月蝕”,“日蝕”的意思。做動詞講,就是“使黯然失色”,“蒙蔽”的意思。

Java的可移植性幫助Eclipse成功實現跨平臺,Eclipse可以運行在Linux,Mac OS X,Solaris,Windows等。Java標準窗口小部件工具包(SWT)部分負責了Eclipse的外觀UI。同樣地,Eclipse也是它的性能依賴于JVM。早年因為硬件的低性能和JVM低版本,Eclipse有運行慢的名聲。但即使在今天,還是可以感覺到慢,特別是當裝了許多插件再進行更新的時候。

Eclipse中的一部分開銷是因為內置的增量編譯器。每當它加載一個文件,并且每當你更新你的代碼,它就會運行。其實總的來看,這是一個很好的事情,因為但你在輸入代碼的時候可以及時提供錯誤提示。

一個Eclipse Java項目在獨立于構建系統之外,維護著項目的內容模型。這個模型包含有關Java的類層次結構,引用和聲明的信息。通過這個模型可以支持多個編輯和導航助手以及大綱視圖。

Eclipse安裝的時候,通常需要安裝很多其他的包。包括一個最小化的Eclipse SDK和必要的插件。安裝插件的時候很容易就會引入沖突,特別是新人。

從左到右,我們在Eclipse工作臺中看到了四個窗格:Package Explorer、Java編輯器、Java類大綱和問題列表。這個圖中加載到Eclipse中的項目是JUnit測試框架。窗格可以很容易地重新排列。

編輯、瀏覽、重構、調試

第一次使用Eclipse的人可能會感到困惑。你的第一個任務是適應Eclipse的工作空間、透視圖和視圖的概念體系,這些概念又跟你安裝的插件有關。比如Java服務器開發,你可能使用Java,Java EE,瀏覽視圖;package explorer視圖;調試透視圖;團隊同步視角;Web工具;數據庫開發視圖;數據庫調試視圖。

插件生態系統是Eclipse的優勢之一,也是有時候造成問題的原因之一。Eclipse市場中目前包含1700多個解決方案,提供了數以千計的插件。這些插件可能會,也可能不會像期望的那樣工作(因為彼此的沖突)。盡管如此,Eclipse插件仍然支持超過100種編程語言和近200個應用程序開發框架。大多數主流的Java服務器也支持;如果你在Eclipse定義一個新服務器連接,你會看到一個供應商列表。下面你會發現大約30個應用服務器,包括9個版本的Apache Tomcat。商業公司傾向于把他們的產品在一起。例如在Red Hat JBoss中間件下面只有一個條目,包括WildFly,EAP服務器工具以及JBoss。

在Eclipse中,通常有不止一種方法來完成一個任務。例如,你可以使用package explorer或Java瀏覽視圖來瀏覽代碼。選擇哪個方式取決于你自己的體驗感受。

Java搜索支持查找Java包、類型、方法、字段。您還可以使用快速訪問搜索,并使用快速視圖來彈出類大綱之類的內容。

添加方法和生成類都有錯誤注釋和內容輔助支持(其實其他兩個IDE也支持)。可以從代碼模板生成常見的代碼模式,而Eclipse可以自動生成和組織import語句。在Eclipse中,重構支持23個操作,從常見的重命名操作到更晦澀的轉換,從Martin Fowler的書中可以得到。重構不僅可以交互式地執行,還可以從重構腳本中進行。

Eclipse支持本地和遠程調試(其實其他兩個IDE也支持),假設您使用的是支持遠程調試的JVM。調試的過程是標準的方式:設置斷點,然后在調試視圖的一個選項卡中查看變量。

Eclipse提供了豐富的幫助和文檔。但經常會發現,文檔中的圖片可能并不匹配當前的版本,或者快捷鍵跟幫助中說的不太一樣。這可能是開源項目的常見問題:文檔會延遲幾個月甚至幾年才更新。Eclipse的生態系統非常龐大,所以在文檔及時性上問題不小。

NetBeans

NetBeans的履歷挺完整的。最早是一個大學生項目,于1996年在布拉格誕生。在1997年成為一個商業產品,在1999年被Sun收購,然后在2000年開源。運行在Windows、Mac OS X、Linux和Solaris上。還有一個可移植的子集,可在支持Java的其他系統上運行。它的Java EE發行版本包含JavaScript和HTML支持、GlassFish和Tomcat,不支持PHP,C / C++ / Fortran,Groovy。在“All”下載包中有Grails。NetBeans也有插件,比Eclipse少,但是不像Eclipse的插件,NetBeans的插件不太可能相互干擾。

Oracle仍然在管理和貢獻NetBeans開放源碼項目,Oracle認為NetBeans是Java 8的官方IDE。(但是who care? )

NetBeans確實對Java 8有很好的支持,并且可以將舊代碼轉換為基于Java 8。它的編輯器、代碼分析器和轉換器可以幫助您升級您的應用程序,使用新的Java 8語言結構,如lambda、函數操作和方法引用。NetBeans 8中的JavaScript插件改進了對Node.js,以及一些新的JavaScript工具的支持,如Gulp和Mocha,還改進了對JavaScript Nashorn引擎的支持。

小編推薦一個學Java的學習裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!

這是NetBeans基于Maven的項目,與IntelliJ IDEA在圖里打開的是同一個項目。請注意上下文菜單和它的重構子菜單中的功能。

“檢查與變換”工具使你能夠在代碼庫中運行檢查,同時自動修復代碼。但你最好在執行自動修復之前,確保已經檢查了所有代碼,并成功運行所有的單元測試。被自動“修復”可能會導致代碼被還原或修復成你可能不期望的結果。

構建、調試、調優

NetBeans對Maven和Ant有很好的內置支持,還有一個Gradle的插件。已有的Maven項目現在被視為“本地”項目,這意味著只需打開它們,而不是導入它們。NetBeans還包含一個Maven依賴關系的性感(有用的)圖形視圖。

能感知語言的NetBeans編輯器在你輸入代碼的時候會檢查錯誤,并通過彈出窗口的文檔和智能的代碼輔助完成功能來幫助你。NetBeans在做檢查和給予提示的時候比Eclipse的停頓更少,比IntelliJ IDEA稍微多一些。NetBeans還提供全面的重構工具,以允許你重建代碼而不會中斷代碼;執行源代碼分析;并提供豐富的提示,以幫助你快速修復或增強代碼。 NetBeans包含一個用于Swing GUI的設計工具,以前稱為“Project Matisse”。

比較三大JAVA IDE

多年來,我個人依次使用了Eclipse、NetBeans和IntelliJ。每次換了IDE并熟悉之后,我都覺得我已經提高了工作效率。甚至有一次,我以為我已經堅定地轉向IntelliJ。然而,有時我不得不返回另一個Java IDE。比如Eclipse曾經是唯一支持Android的IDE開發。(目前官方Android IDE,Android Studio是基于IntelliJ IDEA。)

我有一些全職的Java程序員朋友,他們都聲稱使用了這三大IDE中的每一個。IntelliJ IDEA的用戶特別忠誠,就像忠誠于Visual Studio的 c++和c#程序員那樣。他們聲稱只需要幾周時間,生產率增長節約的成本就足夠支付一年的授權費用了。NetBeans和Eclipse用戶對他們的選擇也是非常忠誠的,他們中的一部分人想不明白為什么有人會愿意為IntelliJ付費。所以,程序員其實是很固執的。

推薦JAVA新人不要用Eclipse,盡管它是最受歡迎的JAVA IDE,卻有最陡峭的學習曲線。在日常使用和維護IDE隨時都有可能出現一些混亂或困擾。許多透視圖和視圖提供了各種各樣的功能,但是從一個角度切換到另一個視角可能會讓你感到不適應,干擾你的思路。有些從Eclipse轉IntelliJ的人宣稱IntelliJ沒有Eclipse用起來好用,其實只是操作習慣不同帶來的不適而已,特別是快捷鍵。

Eclipse擁有所有IDE中最大的插件生態系統。但是很容易因為安裝了一組不兼容的插件,變得不可用。有時候不得不刪除Eclipse,用一個正式的發行包重新開始。

NetBeans對大多數人來說都很好,并且有一個很好的性能分析工具。我有時候會使用它,但我還是更喜歡IntelliJ IDEA終極版。

如果是沒有錢的屌絲,建議在NetBeans和IntelliJ IDEA社區版之間選擇。如果你編寫Java服務器代碼很少或根本沒有錢,NetBeans會是更好的選擇。如果你是學生或開源項目開發人員,你就有權免費或以一個折扣價使用IntelliJ IDEA終極版。

輕量級的JAVA IDE

當大多數人選擇IntelliJ,NetBeans或Eclipse,仍然存在一些情況下,你可能希望一個輕量級的IDE,甚至一個編輯器如Sublime Text、emacs或有Java支持的vim 。

假設需要一個輕量級IDE,可以考慮以下這些:

DrJava是一個免費的輕量級開發環境,用于編寫Java程序。Rice大學專門為學生設計的,目前已有超過200萬次下載。 DrJava旨在促進測試驅動的軟件開發。它包括智能的程序編輯器,用于評估程序的交互面板,源碼調試器和單元測試工具。

BlueJ是為肯特大學(the University of Kent)為初學者設計的免費Java開發環境。 它由Oracle支持。 BlueJ具有比NetBeans或Eclipse等專業環境更小更簡單的界面,還有一本關于使用BlueJ學習OOP的大學教科書。

JCreator是Windows平臺的輕量級Java IDE,出于性能考慮以C++編寫。付費的Pro版本有一個調試器,Ant支持和代碼向導; 免費的LE版本沒有。

小編推薦一個學Java的學習裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!

Eclipse Che是一個基于瀏覽器和云的IDE以及程序員工作服務器。Che支持Java與C ++,JavaScript,Python,PHP,Ruby和SQL。

基于項目的選擇Java IDE的建議

上面已經描述了三大Java IDE的顯著特征,并提供了一些輕量級的替代方案。可以需要根據你個人開發需求和資源來衡量這些信息,以決定哪個IDE最適合。除了個人考慮之外,還有基于項目的考慮。在許多情況下,使用與開發團隊其他部分相同的IDE比較好。但這也并不是一定必要的。我自己的團隊就同時使用Eclipse和IntelliJ IDEA。可以通過一些插件來 保證統一的編碼風格等問題。使用前者的人就是上文中說的那種“想不明白為什么有人會愿意為IntelliJ付費” 的人。

如果項目托管在GitHub,那么直接集成了GitHub的IDE能讓你的生活更美好一點。另外IDE對構建系統的支持也是類似。當然三大IDE對Ant, Maven, and Gradle對此支持都很好。

對開發框架的支持也是要考慮的一個因素。例如,IDE知道JPA語句與實體類和JPA表達式(比如IntelliJ),那么你可能會花更少的時間在你JPA相關的代碼。

與BUG跟蹤系統的集成也是一個因素。你可以通過使用web客戶端來訪問JIRA,但是如果可以直接從IDE查看,會更爽。

結論

很多人會認為IntelliJ IDEA是Java ide中的凱迪拉克。雖然它不是像Eclipse或NetBeans那樣的免費,但我相信提高生產率的代價是值得的。對于剛剛起步的開發人員,或者那些不愿意付費的開發人員,我推薦NetBeans在Eclipse之上。盡管Eclipse的插件生態系統曾經讓它成為開發人員的首選,但是現在它已經變得笨拙,并且維護得很差。

輕量級的替代方案中包括兩個為學生設計的方案。這些都是值得嘗試的,如果你只是學習Java,如果你發現功能齊全的ide具有壓倒性優勢。如果你只是喜歡輕量級的開發環境,那么上面說到的幾個都可以考慮。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容