Eclipse作为开发Java的IDE,从出现到现在已经有几年的时间了,其丰富的特性,操作容易和在提高生产力方面收到了广大开发者的青睐。对Swing开发者来说,使用NetBeans可以充分的利用NetBeans的强有力的RCP。
Eclipse作为开发Java的IDE,从出现到现在已经有几年的时间了,其丰富的特性,操作容易和在提高生产力方面收到了广大开发者的青睐。当然一提到Java IDE,人们不禁会提到其他Java IDE像NetBeans,IntelliJ等,那么这些Java IDE之间到底存在着哪些异同呢?因此在Java开发的空间里,对这些主要的IDEs做一个全面的比较是很有必要的,通过比较我们找出这些主要的IDEs 在四个通常的开发领域:Swing, JSP/Struts, JavaServer Faces和 J2EE/EJB 3.0中哪个IDE表现的更出色。本文就从这四个通常的开发领域来比较Eclipse, NetBeans,IntelliJ。
在三个IDEs中,Eclipse是唯一个存在多个版本,从基本的版本到预先打包好的带额外的开源插件(像EasyEclipse)和开源/商业结合的(像MyEclipse)。
NetBeans 5.5:
首先来看NetBeans 5.5,NetBeans 5.5的基本信息如下表:
一般特性:
早期的NetBeans版本在开发Swing上速度非常慢,而且界面很不美观,因此并没有收到众多人士的欢迎,自从5的版本以后,NetBeans开发小组已经彻底的改变了这种状况,NetBeans 5.5和JDK 1.6的结合为用户提供了更为出色的用户体验,特别在Windows平台下(Linux仍然有一些UI上的小问题,预计在NetBeans 6.0的版本这些问题会得以改善。在5.5的版本中缺少对本地GTK的外观支持。)
在Windows系统中,NetBeans 使用起来非常的方便,像收缩/隐藏/切换等功能,面板/编辑器等配置起来也非常的容易,另外,NetBeans的菜单布局也非常有逻辑,使用起来很方便,大多数的一般功能很容易上手,一直以来,NetBeans的稳定性和性能也十分出色。
基本的Java编辑器也是相当好的,虽然在代码完成方面与其他IDEs相比还逊色一些,但是毕竟还是可以使用的,NetBeans也提供重构的功能(特别是最常用的重命名/移除特性),在一些测试中,它不总是能够进行上下文感知(context-aware),例如在Struts工程中重命名Action 类所在的包,相应的在struts-config.xml中就不能及时的做到同步更新,但是在重构JSF backing beans和更新在faces-config.xml 中的实体方面表现的很好,同时在同步更新J2EE 1.4 sessions beans和ejb-jar-xml的实体方面表现的也很好。
Swing开发:
NetBeans包括一系列的特性来开发Swing应用程序,像根据实际文本的位置来进行自动排列,它的强有力的尺寸恢复功能和固定功能使得UI设计器是任何平台的任何语言都不能比拟的。NetBeans 5.5还包括一些新的有助于提高生产力的特性,像自动进行国际化(控制每个窗体/对话框/面板到ResourceBundle包括所有的国际化字符串),使用自定义的窗体/面板(只要他们在你的工程中至少编译过一次)。
对Swing开发者来说,使用NetBeans可以充分的利用NetBeans的强有力的RCP(Rich Client Platform)向导来创建新的,成熟的Swing应用。
JSP/Struts开发:
NetBeans带有非常好的JSP编辑器,该编辑器包括我们期望的基本的特性,基本的向导和创建一个新的Struts工程。内嵌的Tomcat同期使得开发和调试JSP应用程序都很容易,下图为NetBeans web应用向导:
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 Web Pack是更好的)。这些都有待于提高。下如为NetBeans对Struts的支持:
JSF开发:
NetBeans对JSF的支持就像对Struts支持的一样,提供了一个基本的向导来创建一个工程,包括类库,配置所有要求的文件等,甚至在JSP编辑器中提供了对backing beans属性的代码补全功能。同时包括在faces-config.xml文件中对导航规则的向导。
NetBeans Visual Web Pack提供了一个交互式的解决方案通过从Sun Java Studio Creator直接移植到NetBeans的特性来构建JSF应用,这包括用来构建web页面的一个Matisse样式的GUI构造器,并带有丰富的 JSF控件,这些JSF控件扩展了基本的JSF RI集,同时也支持数据绑定(直接依靠数据库查询甚至通过JPA/Hibernate)。
尽管Visual Web Pack有一些优点,但是Visual Web Pack也有一些缺点:
1. 缺少对页面模板的支持(虽然可以保存一个页面作为一个模板并且作为一个标准使用,但是模板的变化不是级连的),对Facelets的支持或者来自MyFaces对Tiles的支持在这里将是很有用处的。
2. 缺乏对Apache MyFaces的支持(存在着潜在的问题,当使用MyFaces RI而不是Sun的规范像JBoss部署到一个应用服务器)
3. 不灵活的backing beans自动产生功能。
另一个主要的特性是支持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提供了额外的插件。
IDEA提供了对J2EE规范的完全支持,更重要的是它提供了对EJB3.0和JPA的支持,虽然并没有像NetBeans那样支持的好(自动的在持久化单元中为JPA增加实体并在所有的实体域中为指定的查询产生代码,使用NetBeans 5.5习惯以。
IntelliJ IDEA 6.0.4
IntelliJ IDEA 6.0.4的基本信息如下表
一般特性:
与NetBeans一样,IDEA提供了灵活的布局,在各种配置中截短/锁定/浮动 面板的功能,但它没有NetBeans(Windows系统下)那样流畅和可配置。
相对IDEA杰出的编辑器来讲,这些只是一些小问题,IDEA的编辑器是非常快的,具有对敏感内容的颜色凸显,提示和弹出建议框的功能,使用IDEA的时间越长,编程的效率就会越高。下图为一个简单的IDEA编辑器和高级的颜色/语法突出显示:
JSP/Struts开发:
IDEA可以自动的建立配置文件(包括Tiles 和Validator),下载所有需要的Struts类库,它也提供了一个Struts助手,提供图形化的编辑器和向导来进行Struts配置,包括 tiles-config.xml 和validation.xml文件。
IDEA没有JSP/HTML页面的可视化编辑器,其规则的IDEA JSP/HTML编辑器即使没有一个可视化的组件也是非常好看的,支持嵌入的JavaScript,特别是能够处理DHTML或者AJAX代码,JavaScript编辑器也支持指定的浏览器(IE, Mozilla和 Opera)和流行的AJAX矿见像Dojo, Bindows和 Prototype。
IDEA Struts助手
IDEA对Web 2.0开发的支持也是很酷的,比如它将支持GWT (Google Web Toolkit)作为它的一个核心特性。
JSF开发:
可以选择JSF版本(1.0,1.1,1.2)和实现(JSF RI或者Apache MyFaces),IDEA可以下载需要的类库,JSF模块提供了对JBoss Seam封装的支持,这说明IntelliJ在JSF开发上正逐渐成为标准框架,也进一步证明了IntelliJ在Java Web开发中会有更好的表现。
企业开发:
IDEA提供了对J2EE规范的完全支持,更重要的是它提供了对EJB3.0和JPA的支持,虽然并没有像NetBeans那样支持的好(自动的在持久化单元中为JPA增加实体并在所有的实体域中为指定的查询产生代码,使用NetBeans 5.5习惯以后可能会在IDEA中丢失这些),IDEA确实有选项来为JPA持久化单元中观察ER图,这可能只在EJB模块中可以使用,在一个规则的 web模块中使用JPA,不能调用ER图选项。IDEA也全面的支持J2EE/Java EE 5,它甚至提供了一个升级的路径从J2EE到基于注释的Java EE 5方法。
至于应用服务器,IDEA提供了部署插件来为WebLogic, WebSphere, JBoss, Geronimo和Glassfish等应用服务器进行部署。
同时支持单元测试,像支持JUnit 4,并提供了测量code coverage的集成工具。
如果你专门从事Swing开发,NetBeans无疑是最好的选择,如果你没有选择NetBeans而是选择了Eclipse,建议使用MyEclipse 和它的Matisse4Eclipse构造器。
Eclipse 3.2.2 "Callisto"/MyEclipse 5.1.0 GA
一般特性:
Eclipse一经出现就以其快速,丰富的特性赢得了认可,其主要的属性有:
1. 快速的性能
2. 重构功能
3. 快速修复错误
4. 调整/组织导入包
5. 弹出窗口进行代码自动装配
然而,Eclipse的Windows系统下,也有不和逻辑的地方,例如:最小化Package Explorer/Hierarchy视图并没有收缩到边上,相反,Eclipse仅折叠起来在屏幕上留下令人不习惯的界面,如图:
Swing开发:
Eclipse的可视化编辑器是所有的Java IDEs中最差的一个,主要是由于它支持最先进的布局是GridBagLayout,使用NetBeans的Matisse以后,你就会觉得使用 Eclipse来创建Swing UIs是多么的不方便。由于有社区的强有力的支持,MyEclipse声称Matisse GUI构造器已经集成到了Eclipse里,并且运行的非常好。NetBeans正不断的将一些更新融入到新版本中(像bean绑定特性已经是 NetBeans 6.0的一部分)。没有一个IDE像Eclipse这样有强大的社区来开发插件不断的补充Eclipse的基本的功能。
JSP/Struts开发:
Web Tools Project (WTP)对Eclipse增加了web开发,提供了一个固定的JSP编辑器来进行基本的JSP开发,在部署web应用程序上,Eclipse可能会有一点问题,如:部署到Tomcat上可能会由于错误而发生死锁。
WTP缺少对Struts开发的支持,MyEclipse完全祢补了这些不足,提供了对Struts的完全的支持,包括对struts-config.xml进行图形化编辑,创建Actions和FormBeans的向导。
MyEclipse的struts-config.xml编辑器
Eclipse和MyEclipse也只不过是提供了一个可视化的编辑器来创建JSP/Struts页面。下图是利用MyEclipse的特性来增加到一个web工程。
MyEclipse的Web工程选项
JSF开发:
Eclipse对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的支持。
MyEclipse的EJB代码产生
总结:
对不同的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的支持,应该是最后的选择。
分享到:
相关推荐
好东西,下了就知道了。 Java IDE实用对比:Eclipse、NetBeans、IntelliJ Java学习 心得 …… 您还在为找不到合适了解 JAVA的途径而担忧吗?下载这个吧...您会觉得分有所值的。
在Java领域,常见的IDE有Eclipse、IntelliJ IDEA和NetBeans等,但这里提到的是一个自定义版本,可能具有开发者个人定制的特色功能或优化。 【描述】:“自己写的一个java编程IDE工具,附带源码” 描述中提到这个...
一、Eclipse与IntelliJ IDEA的对比 1. IDE选择的重要性:作者在文章开头提出,软件开发者对IDE的选择争论不休,甚至可以和咖啡还是茶、Mac还是PC、iOS还是Android这样的热门话题相提并论。 2. 个人经验分享:作者...
Eclipse、IntelliJ IDEA 和 NetBeans 这三种主流的Java IDE,各自拥有忠实的用户群体。本文将详细介绍如何从Eclipse顺利过渡到IntelliJ IDEA,并探讨IntelliJ IDEA相较于Eclipse的优势所在。 #### 一、为何选择...
教程Jersey2(Servlet 3.0)样板代码 ... Eclipse: mvn eclipse:eclipse IntelliJ: mvn idea:idea 使用IDE:Eclipse / IntelliJ / Netbeans 新Maven项目 原型:maven-archetype-webapp GroupId:com.techobyte
作者Anton Arhipov分享了自己从Eclipse和NetBeans转向IntelliJ IDEA的经历,解释了为何他认为IntelliJ IDEA更适合他所从事的工作。 #### 一、为什么选择IntelliJ IDEA? 在软件开发界,围绕着IDE的选择的争论不亚于...
- **自动完成与代码提示**:Java IDE提供代码补全功能,根据上下文自动填充代码,减少手动输入,提高编程速度。 - **调试工具**:内置的调试器可以设置断点、单步执行、查看变量值,帮助开发者找到并修复程序中的...
而IDE(如Eclipse、IntelliJ IDEA或NetBeans)通常会集成这些库,使得开发者可以直接在环境中使用,无需手动添加。 在“压缩包子文件的文件名称列表”中,只给出了“lib”这一项,这通常表示这是一个包含多种Java库...
本资料“常见java IDE工具介绍与对比”将深入探讨几个主流的Java IDE,帮助你了解它们的特点、优势以及适用场景。 1. **Eclipse** Eclipse是最为知名的开源IDE之一,它具有高度可扩展性,通过插件系统可以支持多种...
我喜欢IntelliJ,但是您可以使用其他诸如NetBeans,Eclipse等。 请按照此链接中的指南安装IDE: : 安装IntelliJ之后,通过以下步骤在IntelliJ中安装Scala插件非常有用:文件->设置->插件-> Scala。 有关更多信息...
常见的Java IDE如Eclipse、NetBeans和IntelliJ IDEA,它们提供了丰富的特性,如代码自动补全、语法高亮、错误检测、版本控制集成等。本章节我们将简化这些功能,专注于构建一个基础的IDE,实现基本的文件操作、文本...
Matlab集成的c代码Ismek Java编程1课程 25.11.2019-15.01.2020星期一-星期三14.30-...Java(语言)语法(规则):Java类名称规则: 不能以数字开头。 不应包含土耳其语字符(çğıöşüÇĞİÖŞÜ)。 因为在不
在Linux环境下,Eclipse可以与常见的版本控制系统(如Git)无缝集成,并支持诸如IntelliJ IDEA、NetBeans等其他IDE的导入导出功能,方便开发者切换工作环境。 总之,"eclipse-java-linux-gtk-x86_64.tar.gz"是一个...
一、Java技术介绍 Java是一种广泛应用于软件开发的高级编程语言,由Sun ...使用集成开发环境(IDE):为了更好地编写和调试Java代码,建议使用一个Java集成开发环境(IDE),如Eclipse、IntelliJ IDEA或NetBeans。
常见的Java EE IDE有Eclipse、IntelliJ IDEA和NetBeans等。这些IDE通常具有以下特性: 1. **代码自动完成**:自动完成代码功能能帮助开发者快速输入类名、方法名和API调用,提高编程效率。 2. **集成版本控制**:...
Coffee or Tea?...Eclipse or IntelliJ IDEA (or NetBeans)? Believe it or not, software developers argue as much about their IDE as any of these other hotly-debated topics. And for a good reason...
此外,集成开发环境(IDE)如Eclipse、IntelliJ IDEA或NetBeans等,可以极大地提高开发效率,它们提供了代码编辑、编译、调试和版本控制等功能。 **3. Java核心概念** 理解Java的基本概念至关重要,这包括: - 类与...