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

NetBeans Eclipse
主要赞助商 Sun Microsystems IBM Corporation
版本号 NetBeans IDE 3.6 Eclipse 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.org http://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)项目管理特性支持

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

(8)代码编辑特性支持

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

(9)GUI设计能力

GUI库支持 NetBeans Eclipse
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+)

  • posted on 2005-03-10 22:39  stretch  阅读(2794)  评论(0编辑  收藏  举报

    导航