服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

eclipse netbeans intellij的实用对比

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的基本信息如下表:

vendor:sun microsystems

website:www.netbeans.org

price:free/open source

distribution:base + enterprisepack + visual web pack

安装:

netbeans 5.5,包括它所带的包(像带有 uml/bpel/soa的enterprise pack和开发jsf的 visual web pack )都既可以作为zip文件的形式来下载也可以跨平台进行安装。在windows平台下,安装以后会与操作系统无缝的集成起来,包括桌面的快捷方式和增加安装/卸载控制面板。在linux平台下,netbeans 5.5仅仅安装在一个指定的目录下并且在gnome或者kde桌面上创建了一个启动的图标,但是,在linux平台下,netbeans 5.5不能以rpm或者一个.deb文件形式打包在一起,也不能提供一个标准的知识库,这些知识库可以使linux用户按照其他的应用来安装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提供了额外的插件。

intellij idea 6.0.4

intellij idea 6.0.4的基本信息如下表

vendor:

jetbrains

website:

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文件中:

jdk_home=/home/jacek/devhttp://java.chinaitlab.com/jdk/jdk1.6.0_01

export jdk_home

java_home=/home/jacek/devhttp://java.chinaitlab.com/jdk/jdk1.6.0_01

export java_home

在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页面的可视化编辑器,其规则的idea jsp/html编辑器即使没有一个可视化的组件也是非常好看的,支持嵌入的javascript,特别是能够处理dhtml或者ajax代码,javascript编辑器也支持指定的浏览器(ie, mozilla和 opera)和流行的ajax矿见像dojo, bindows和 prototype。

扫描关注微信公众号