自2006年以来,我一直在使用Eclipse IDE,由于各种原因,我非常喜欢它。 首先,它是开源的,可以免费使用。 在我大部分时间使用的Windows OS上,Eclipse看起来很整洁。 有时我尝试使用NetBeansIDE(6.x版之前),但我不喜欢它,因为它太慢了。 而且我从未尝试过IntellijIDEA,因为它是一种商业产品,而且我100%确信我的雇主不会为IDE付钱。
因此,多年来,我一直在使用基于JavaEE的Eclipse版本,一旦我找到SpringSource Tool Suite,它就成为了所有功能的默认Java IDE。 我非常喜欢Spring框架,并且每天在个人和官方项目中都使用Spring技术。 STS为Spring相关技术提供了许多附加功能,例如spring xml文件中的自动完成,beans graph等。我应该特别提及STS中的SpringBoot支持。 您可以直接从IDE本身创建具有很多自定义选项(要使用的模块,java版本,maven / gradle,java / groovy等)的SpringBoot应用程序。 到目前为止,还没有其他IDE对SpringBoot拥有如此好的支持。
但是众所周知,使用Eclipse并非总是很有趣。 它有自己的一系列问题。 我习惯于一直看到NullPointerException或IllegalArgumentException错误警报。 当您按Ctrl + Space时,您可能会收到自动完成建议或错误警报。 如果您键入得太快并多次按Ctrl + Space,则Eclipse可能会消失并显示带有大有用信息的大警告框。 如果您的工作空间中有许多打开的项目,并且其中包含JPA / JSF / JAX-WS / JAX-RS模块,那么一旦您打开Eclipse,它就可能永远停留在Building Workspace状态。 解决此问题的唯一方法是通过任务管理器结束流程。
至此为止是可以忍受的。 如果您安装了包含任何冲突XML库的任何插件,那么实际的问题就会开始。 一旦打开pom.xml,您将反复看到错误警报,甚至无法关闭它。.它会不断弹出错误警报。 如果幸运的话,重新启动eclipse可能会解决问题,或者您必须尝试卸载新安装的插件(这对我来说从来没有解决问题)或完全使用新的Eclipse开始。
即使经历了所有这些痛苦,我仍然坚持使用Eclipse,因为我已经习惯了。 正如我所说的,我一直在使用STS,直到STS-3.5.1版本都可以,并且我可以忍受前面提到的所有痛点。
但是一旦我下载了STS-3.6.0并开始使用它,情况就变得更糟了。 首先,Gradle插件无法正常工作。 谷歌搜索一段时间后,已经存在有关同一问题的错误。 我认为这可以在STS-3.6.1版本中解决,但事实并非如此。 然后我通过每晚构建升级了Gradle插件,它开始正常工作。 我很高兴。 然后,我启动了SpringBoot应用程序,它运行良好。 大!!。 然后,我打开了另一个Java类并进行了一些更改,然后尝试单击“重新启动”按钮。 一旦鼠标光标在“重新启动”按钮上,它就会显示错误警报。 导航到任何其他文件,然后将光标放在“重新启动”按钮上,然后再次显示错误警报。 我勒个去!! 在将近4天的时间里,我仅在此类问题上苦苦挣扎。 我从来没有开始编写代码。
我对自己说:“够了!! 关闭这个月食,并开始使用一些更好的IDE,从您的Eclipse舒适区中脱颖而出”。
我时不时都在玩NetBeansIDE,并且我知道NetBeansIDE比以前的版本好很多,尤其是从7.x开始,它的速度非常快而且功能丰富。 一年前,我尝试了IntellijIDEA Ultimate版本和试用版,由于我以前的Eclipse经验,这完全让我感到困惑。
当我用Google搜索“ Eclipse vs NetBeansIDE vs IntellijIDEA”时,有很多文章将它们进行比较,并且几乎每篇文章都以“ IntellijIDEA> NetBeansIDE> Eclipse”作为结论。 但是我自己尝试使用NetBeansIDE和IntellijIDEA。 因此,我安装了NetBeansIDE 8.0.1和IntellijIDEA Ultimate Edition 13。
我对NetBeansIDE的看法:
我注意到的第一件事是NetBeansIDE与以前的版本相比有了完全的改进。 它速度快,功能丰富。
优点:
- 您将获得现成的大多数Java东西。 您无需寻找插件。
- 如果您的项目基于JavaEE技术,例如CDI / EJB / JPA / JSF / JAX-RS,那么您会喜欢NetBeansIDE。 它具有强大的代码生成器,可用于数据库中的JPA实体,实体中的JSF视图,实体中的JAX-RS资源等。
- 它对Maven的支持非常棒。 查找和添加依赖项是开箱即用的。 无需检查“启动时下载索引”并执行重建索引…您知道我的意思!
- 对HTML5技术(特别是AngularJS)的强大支持。 AngularJS指令的自动完成功能非常出色。
- 您可以直接从IDE本身下载并安装许多流行的Javascript库。
- 它具有非常好的Java8支持。 它甚至显示了将for循环转换为Java8流和lambda的代码建议。
- 最近,我正在学习使用PhoneGap / Cordova开发移动应用程序。 在NetBeans中使用Cordova入门很容易。
缺点:
- 没有工作区的概念。 对于某些人来说,这可能是一个优势,但对我而言,这是一个劣势。 通常,我为不同的项目维护多个工作区,有时我想并行打开它们。
- 可以打开多个NetBeans IDE,但这并不那么困难。
- 在家里,我安装了NB 8.0.1和Wildlfy 8.0.0.FINAL,并且运行良好。 就在同一天,Wildlfy 8.1.0.FINAL发布了,在办公室,我尝试使用NB 8.0.1和Wildlfy 8.1.0.FINAL运行一个应用程序,但它根本无法正常工作。 梳理了几个小时后,我发现NB 8.0.1尚不适用于Wildlfy 8.1.0版本。 有点奇怪! Wildlfy从8.0.0更改为8.1.0了很多????
- 我刚刚创建了一个Web应用程序,并尝试在Tomcat上进行部署,这应该出什么问题! 但是在部署时却失败了。 挣扎了几分钟后,在StackOverflow中找到了答案,可能是由于代理问题。 在NetBeans中配置我的公司代理详细信息之后,它的工作正常。
- 但这并不酷。 在我的本地tomcat上部署应用程序不必担心Proxy ..对吗?
- 没有阻止评论的捷径!!! 来吧…
总的来说,我非常喜欢NetBeans IDE。 成为开源和免费IDE NetBeans真是棒极了。
我对IntellijIDEA的感觉:
每当我读到有关IntellijIDEA用户体验的信息时,我总是在这里“哇”,“惊叹”,“不能回到Eclipse / NB”和“我不介意为如此出色的工具付钱”。 但是由于我以前的Eclipse Workspace / Project风格经验,我很难适应它的Project / Module风格的代码组织。 我对它仍然不太满意,但是它不是阻碍者。
优点:
- 没有随机的NullPointerException / IllegalArgumentException异常警报。
- 一切都可以从IDE本身完成。 无论是与数据库一起使用,从命令提示符处进行修补,Maven / Gradle任务执行,RestClient等等等。
- AutoCompletion支持简直让人难以置信。 键入sort和Ctrl + Space两次,两次显示来自所有Java类的排序方法。 精彩。
- 与许多版本控制系统的交互都可以顺利进行。
- 支持其他IDE的按键绑定。
缺点:
- 好吧,以下内容可能并不是真正的缺点,但是从Eclipse用户的角度来看,以下内容令人困惑且难以使用:
- 项目/模块样式代码的组织与其他IDE截然不同。
- 我非常想念右键单击一个Web项目,然后选择“在服务器上运行”。 我花了30分钟的时间弄清楚如何在IntellijIDEA上运行Web应用程序。 请提供“在服务器上运行”选项,然后打开“编辑配置”窗口以选择服务器和其他内容。
实际上,现在说IntellijIDEA是否最好还为时过早,因为我仍在学习以Intellij方式做事。 但是我可以清楚地感觉到IntellijIDEA具有令人上瘾的特性,因为它具有编辑功能和“ IDE的一切”体验。 但是主要的问题是它非常昂贵,而且我100%确信我的雇主不会为IDE付费,尽管它可以极大地提高生产力。
我实际上正在考虑使用IntellijIDEA社区版,因为它具有Java / Groovy / Maven / Gradle支持。 而且,SpringBoot可以作为独立的Java程序运行,不需要服务器支持。
总的来说,我觉得它功能强大且具有丰富的IDE,我只需要了解IntellijIDEA的做事方式即可。
我从NetbeansIDE / IntellijIDEA中错过了哪些Eclipse功能:
在玩过NetBeansIDE和IntellijIDEA之后,我认为Eclipse在以下方面会更好:
- 支持多个工作空间和多个实例
- Java编辑器的Eclipse配色方案比NetBeans的玻璃外观和IntellijIDEA的暗灰色外观令人愉悦。
- 明智的Eclipse快捷键绑定。 许多键绑定不像IntellijIDEA那样包含Ctrl + Shift + Alt的疯狂组合。
- Maven pom编辑器的Dependency Hierarchy Tab视图提供了“此jar依赖来自何处”的简洁视图。 对我来说,简单的树形结构比花哨的图看起来更好。
结论:
总而言之,据我了解,您在一个IDE中所做的大部分事情也可以在其他IDE中完成。 只是使用选定的IDE的工作方式即可。 但是,如果您花费大量时间与IDE本身进行斗争,那么这是一个危险信号。 您应该考虑迁移到更好的IDE。
在使用NetBeans和IntellijIDEA之后,我得出以下结论:
如果必须使用JavaEE项目,则可以使用NetBeans。 如果您可以获得IntellijIDEA的许可,那就太好了,如果没有,请选择一个稳定的STS版本并使用它。 不要仅仅因为更新版本而升级了Eclipse / STS。 更新并不总是意味着更好。
翻译自: https://www.javacodegeeks.com/2014/10/netbeanside-and-intellijidea-from-the-eyes-of-a-long-time-eclipse-user.html