Eclipse vs NetBeans:两款一流的JAVA开源IDE的比较(图文及实例)

这两款JAVA IDE都是一流的开源软件,那么对于广大的JAVA学习者及开发人员来说,那款更适合自己呢?本文通过图文对这两款软件进行多方面的分析比较,同时在最后给出了一个"Hello World!"GUI程序的实例在两个IDE中的开发流程。
笔者水平所限,文章仅供参考之用,以期让广大的JAVA学习者少走弯路而已。



1. 简介
NetBeans:在2000年6月由Sun公司开源,其项目包括两个系统:NetBeans IDE,一个开源的集成开发环境(IDE);NetBeans Platform,一个应用程序的通用框架。我们说的NetBeans一般指其IDE。其是以纯Java编写的,但具有Windows环境及OS X环境的本机界面风格。

Eclipse:是一个相当著名的开源Java IDE,由IBM公司开源。Eclipse主要以其开放性、极为高效的GUI、先进的代码编辑器等著称,其项目包括许多各种各样的子项目组,包括Eclipse插件、功能部件等。任何人都能够轻易的将自己的软件做成Eclipse的插件,而且这些插件只需简单的复制到Eclipse的插件文件夹下就可以被集成。主要采用SWT界面库,支持多种本机界面风格。

要得到这两个系统,只需去网上下载即可。下载和使用都是完全免费的。并且,你还能够从其项目主页上下载其源码。当然,你也需要同时遵守各自的协议。


2. 基本信息

本机配置
硬件:
CPU:AMD Athlon XP 2000+
RAM:Kingstone 256MB DDR400
软件:
OS:SuSE Linux 9.1 Personal+KDE 3.3.0
JDK:Sun JDK 1.5.0

NetBeansEclipse
主要赞助商Sun MicrosystemsIBM Corporation
版本号NetBeans IDE 3.6Eclipse Platform 3.0.1
主要功能插件:
Eclipse Java 开发工具(JDT) 3.0.1
Graphical Editing Framework 3.0.1
Eclipse Modeling Framework (EMF) 2.0.1
Visual Editor 1.0.1
OS需求Microsoft Windows XP
Microsoft Windows 2000
Solaris 操作系统
各种 Linux 发行版
Open VMS 7.2-1 或更高版本
Mac OS X 10.1.1 或更高版本
各种 UNIX(R) 平台
JDK需求JDK 1.4.1 版以及更高版本未指定
站点http://www.netbeans.orghttp://www.eclipse.org


3.特性比较

(1)GUI

  • NetBeans 由于采用了纯Java开发并以Swing库编写GUI,因此界面色调偏暗,使用起来跟本机程序感觉不同。开始时可能会有些不习惯。如果使用JDK1.5.0版加载,其增强的Swing库会让NetBeans的界面看起来舒服不少。

    图1. NetBeans的欢迎界面(JDK1.5.0)

    但是感觉菜单选项的安排稍微有些混乱。

    图2. NetBeans的参数设置界面

  • Eclipse GUI相当漂亮,且简洁高效。甚至Microsoft的VS.net都抄袭了它的界面风格。由于采用了SWT界面库,因此在多种平台下的Eclipse都具有该平台的界面风格,使用起来就和通常的本地程序一样。

    图3. Eclipse的欢迎界面(GTK+)

    主菜单的设置相对比较合理。Borland的JBuilder的主菜单就抄袭了这种风格。参数配置页面也比较清爽。

    图4. Eclipse的参数设置界面

(2)文档

  • NetBeans 基本上都是在线文档,有联机帮助、IDE使用指南、快速学习指南、支持和文档,另外还具有Javadoc文档索引搜索功能。
  • Eclipse 基本上是本地文档,不过其帮助系统会首先建立一个本地的网页服务器以显示其文档,因为这些文档都是jsp格式的。所有插件及功能部件的帮助文档都会统一安排到Eclipse帮助中心的首页,浏览起来很舒服,并且有很强的搜索功能。
    同时,IBM的知识库中提供了大量Java及Eclipse相关的文章。

(3)在线升级

  • NetBeans 提供。

    图5. NetBeans的在线升级界面

  • Eclipse 提供。

    图6. Eclipse的在线升级界面

(4)国际化支持

  • NetBeans 主界面的中文化程度相当高。在线文档也提供了中文版。
    直接提供了为程序增加国际化支持的功能。
  • Eclipse GUI提供了中文包。但个别部件没有中文。
    带有详细的中文帮助文档。

(5)Web/J2EE开发支持

  • NetBeans 支持 Servlet 2.4 和 JSP 2.0。
    支持使用 Tomcat 5 部署和调试两层 J2EE 1.4 和 1.3 应用程序。
  • Eclipse 插件支持。

(6)数据库支持

  • NetBeans IBM DB2
    Oracle
    Pointbase
    Microsoft SQL Server
    MySQL
  • Eclipse 插件支持。

(7)项目管理特性支持

NetBeansEclipse
CVS(版本控制)
SVN(版本控制)√(插件支持)
JUnit(测试框架)
Refactoring(代码重构)部分支持
Javadoc(文档生成)

(8)代码编辑特性支持

NetBeansEclipse
代码折叠
智能括号/引号
智能补全代码
自动格式化代码
书签支持
任务/问题列表
错误提示及更正建议
特有功能
  • 缩写扩展: 只要填写一个缩写词,再按空格键即可自动生成语句。如打入sout,然后按[空格],则"sout"会被扩展为"System.out.println("");"
  • 自动注释: 一个非常易用的为代码编写Javadoc注释的工具。
    类/方法导航器:和VB中的那个函数导航器差不多,用组合框进行选择。
  • 快速类型层次浏览:可以在编写代码时直接查看相关类的层次结构
  • 本地历史记录:可以浏览代码从创建至今所经历的改变,并且能够将代码恢复到任何一次保存过的状态。
  • 拼写检查:可以在编写代码时给出拼写建议
  • 元素标记:可以高亮显示某个范围中指定元素(变量/类等)的出现情况
  • 方法出口标记:可以标记方法的所有出口
  • 异常抛出标记:在代码中标记会抛出异常的位置
  • 智能代码模板:只需填写开头词,再按Alt+Tab即可出现代码补全列表及代码模板列表。
    如打入for,然后按[Alt]+[Tab],在出现的列表中选择iterator over array,则一个对数组进行迭代的for循环会自动生成,系统会自动猜测数组名。
    可以用[Tab]在自动变量里切换并更改变量名。
    此方法还可以调用快速智能辅助等辅助编码功能。
  • 此外还有其他许多简化编程的特性。

(9)GUI设计能力

GUI库支持NetBeansEclipse
SWT
SWing
AWT
Beans
概述具有极其简单易用的GUI设计器,可以与VB、Delphi的窗体设计器相提并论。
轻松简单的属性及事件编辑。支持窗体快速预览。
独立的窗体文件和代码文件紧密关联,设计器自动为窗体生成只读代码。
速度比较快,资源占用较少。
Eclipse的GUI设计器是一个叫做Visual Editor的部件。
其设计器将工作区分隔为代码区和界面区,在任何区域的更新都将反映到另一个区域。
窗体会自动预览。仿Delphi的组件板设计得漂亮又直观
窗体设计器生成的代码可以直接改写。
没有专用的窗体文件,窗体是实时按代码生成的。
速度很慢,资源占用比较高。估计需要512MB内存才能跑起来。
其Swing界面的设计似乎不支持Abosolute布局方式。
总的来说,尽管很漂亮,但表现只能说是差强人意

(10)调试器能力

  • NetBeans 在代码行开头点击即可设置/取消断点。
    支持条件断点、单步执行等流程控制功能。
    支持局部变量、监视、堆栈显示等功能。
    支持会话、线程的查看及修改。
    提供了完善的远程调试功能。
    操作简单,功能强大。
  • Eclipse 带有专用的Debug视图并能自动切换。
    其Debug的功能和Delphi的Debug比较相似,Inspect、Watch等应有尽有。
    支持反汇编、内存、堆栈、寄存器显示等高级功能。
    支持会话、线程的查看及修改。
    似乎没有远程调试能力。

4.小结

  • NetBeans 一款不可多得的Java IDE。
    其窗体设计器及其调试器尤其让人印象深刻。其易用性甚至让人想起了当年的VB。
    众多小功能大大方便了开发人员。其他方面的功能也相当不错。
    尽管使用了纯Java开发,但总体的资源占用不多,速度也比较快。
    遗憾的是,其窗体设计器不支持SWT库的界面设计。对于代码重构支持不够。IDE采用的界面没有采用本地界面,让人多少有些不大习惯。其选项配置略微繁杂了些,菜单设置不够合理,尚待改进。而本地文档的缺少对于无法上网者或是窄带上网者来说,是一个很严重的问题。
    另外,笔者没有发现项目的JAR生成选项,对于发布软件来说,这应该是个不小的纰漏。

  • Eclipse 绝对是一款相当好用的程序开发平台。
    其代码编辑器十分先进,众多的编码辅助功能相当实用。尽管微软的VS.Net系列从很早就已经开始模仿Eclipse的风格,但是直至如今的VS.Net 2005,也还是只能“逼近”Eclipse的水平。
    相当创新的集成化GUI也让人们耳目一新。而开放式的平台则给了Eclipse在众多开发平台中前所未有的扩展性。通过插件,我们能够在Eclipse中进行所见即所得的窗体设计,能够开发C/C++软件,能够进行Web项目开发及测试,还能够进行企业级软件的开发管理和性能测试。如果你需要什么功能,那么只需要去找来插件直接安装就行了!
    更为值得推崇的是其中率先集成的CASE工具让软件开发更科学高效。其中不仅有CVS,甚至集成了最新的版本控制程序SubVersion(SVN),这大大促进了协同开发的效率。对重构的直接支持,则有助于提高软件的质量。直接集成的JUnit则提供了在软件开发中使用TDD(Test Driven Develop)方法的一个便捷且低廉的实现方案。而Borland的JBuilder则全面抄袭了这部分功能。
    可惜VE的资源占用太高,而为了实时生成窗体而付出的时间代价则更是巨大,甚至有时会让人无法忍受。
    这是一个高品质的开发平台。也许唯一的遗憾就是其资源占用问题吧。


5.Hello World!实例开发比较

我们的目标是要开发一个GUI应用,窗体中显示一行文字"Hello World!",下方有一个[确定]按钮,点击该按钮则程序退出。
我们分别使用NetBeans和Eclipse开发这一简单的程序,以此更能体验两个开发工具优缺点。

  • NetBeans

    我们采用Swing做界面,布局使用GridLayout以简化操作。这种布局方式的好处是各控件的大小及位置能随窗体的变化而变化。

    1.选择菜单[文件]->[安装文件系统],选择[本地目录]并单击[下一步],指定一个路径并新建目录"hello",选中该文件夹并点击[完成]继续。
    2.可以看到[文件系统]视图里已经出现了"hello"这个项目,选中它并点击右键,选择快捷菜单[新建]->[JFrame窗体],在[名称]中填写"frmHello"并点击[完成]继续。这时[文件系统]视图里会出现新建立的窗体,右边的工作区也会打开代码文件和窗体文件。
    3.打开[窗体]工作页面,这时右边会出现4个视图,分别是组件、检查树、属性/事件、即时帮助。在[检查器]中点击JFrame,在右键菜单中选择[设置布局]->[GridLayout]。然后在下面的[属性]栏中将其[行]改为2(按回车键生效),[列]改为1。这时窗体不会有任何变化。
    4.在[面板]中选择Swing,选中JLabel组件,并在窗体中单击。可以看到一个Label出现在窗体的上半部分中。用同样的方法将一个JButton组件加入到窗体中。
    5.在窗体中选中jButton1,在[属性]栏中将其[text]属性值改为"确定"。窗体的设计就告一段落了。点击工作区中标签栏下面的[测试窗体]可以预览窗体的运行效果。

    图7. NetBeans的GUI设计器

    6.选中jButton1组件,在右键菜单中选择[事件]->[Mouse]->[MouseClicked],这将为该按钮添加默认的事件处理代码,此时工作区将转为[代码]页面,同时光标已经调整到jButton1MouseClicked方法内。注意,浅蓝色背景的代码是由窗体设计器自动生成的,不能手动编辑。
    7.首先通过上面的导航框将光标定位到main方法内,删掉那行"new frmHello().show();",然后写上如下代码:
    frmHello frmMain=new frmHello();
    frmMain.jLabel1.setText("Hello World!");
    frmMain.setSize(300,150);
    frmMain.show();
    出现代码补全框时,选中补全字符串后按回车键输入。
    8.导航到jButton1MouseClicked方法,在其中添加代码:
    System.exit(0);

    图8. NetBeans的代码工作区

    9.按[Ctrl]+[Shift]+[F]键来格式化代码,然后按[F6]键编译并执行程序。

    图9. NetBeans实例运行效果(JDK1.5.0)

  • Eclipse

    这里采用SWT库做界面,这样开发出来的程序将会拥有本地界面。
    以下假定开发者的Eclipse已经安装好VE插件(Visual Editor)。
    注意:如果没有安装VE插件,则Eclipse不支持所见即所得的可视化开发。

    1.选择菜单[文件]->[新建]->[项目],打开[Java],选择[Java Project]并单击[下一步],在[项目名称]处填上"Hello"并单击[完成]。
    2.选择菜单[窗口]->[打开透视图]->[Java]以选定Java编程视图。
    3.在左边的[包浏览器]栏中选中Hello项目,在右键菜单中选择[新建]->[其他],展开[Java],选择[Visual Class]并单击[下一步],在[名称]中填写"frmHello",并在[Style]树中选中[SWT]->[Application],勾选选项[public static void main(String[] args)]和[继承的抽象方法]并点击[完成]继续。系统会自动将SWT库包含进项目中。
    4.这时工作区会自动分为代码区和界面区两部分,同时在左边出现了[Java Beans]栏用于显示窗体中的组件树,下方则出现了[Properties]窗口用于显示组件属性。另外,系统会弹出一个空窗体,这就是当前窗体的预览效果。
    5.将鼠标停留在工作区右端的那条纵向[Palette]条上片刻,窗体组件会显示在上面。选择[SWT Controls]组件板,选中其中的[Label]组件,用鼠标在窗体上拖动以画出该组件。用同样的方法画出一个[Button]组件。

    图10. Eclipse的GUI设计器(属性窗口已经放到右边了)

    6.选中按钮,然后在下面的属性框中更改其text值为"确定"并点击[回车]。在按钮上的右键菜单里,选择[Events]->[Add Events],选择[Mouse]->[mouse Up],生成选项用[extends:****],然后点击[完成]继续。这时左边的[Java Beans]栏和右边的[Outline]栏都显示了新建的这个mouseUp方法,都可以通过点击来导航到这个方法的代码中。
    7.用[Outline]栏导航到main方法内,在第4行代码"thisClass.sShell.open();"前插入如下代码:
    thisClass.label.setText("Hello World!");
    出现代码补全框时,选中补全字符串后按回车键、[.]或[(]键都可以完成输入。
    8.用[Java Beans]栏导航到[button-"确定"]中的mouseUp方法,删除其中原来的那行代码,并在方法中加入代码: sShell.close();
    9.在代码工作区中点出右键菜单后选择[源代码]->[格式化]来自动格式化代码。

    图11. Eclipse的代码工作区(已经最大化工作区)

    10.选择主菜单中的[Run]->[Run...],在[主要]标签页下,点击[Main类]框中的[搜索]按钮,在[匹配的类型]表中选择[frmHello]并点击[确定]。在[自变量]标签页下,在[VM自变量]中填写如下语句:
    -Djava.library.path=${system:ECLIPSE_HOME}/plugins/org.eclipse.swt.${system:WS}_3.0.1/os/${system:OS}/${system:ARCH}
    点击下面的[Run]按钮,在弹出的对话框中点[确定]以保存并编译执行项目。

    图12. Eclipse实例运行效果(GTK+)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值