Eclipse vs NetBeans:两款一流的JAVA开源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界面库,支持多种本机界面风格。
要得到这两个系统,只需去网上下载即可。下载和使用都是完全免费的。并且,你还能够从其项目主页上下载其源码。当然,你也需要同时遵守各自的协议。
本机配置
|
硬件:
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 |
- 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的参数设置界面
- NetBeans 基本上都是在线文档,有联机帮助、IDE使用指南、快速学习指南、支持和文档,另外还具有Javadoc文档索引搜索功能。
- Eclipse 基本上是本地文档,不过其帮助系统会首先建立一个本地的网页服务器以显示其文档,因为这些文档都是jsp格式的。所有插件及功能部件的帮助文档都会统一安排到Eclipse帮助中心的首页,浏览起来很舒服,并且有很强的搜索功能。
同时,IBM的知识库中提供了大量Java及Eclipse相关的文章。
- NetBeans 提供。
图5. NetBeans的在线升级界面
- Eclipse 提供。
图6. Eclipse的在线升级界面
- NetBeans 主界面的中文化程度相当高。在线文档也提供了中文版。
直接提供了为程序增加国际化支持的功能。
- Eclipse GUI提供了中文包。但个别部件没有中文。
带有详细的中文帮助文档。
- NetBeans 支持 Servlet 2.4 和 JSP 2.0。
支持使用 Tomcat 5 部署和调试两层 J2EE 1.4 和 1.3 应用程序。
- Eclipse 插件支持。
- NetBeans IBM DB2
Oracle
Pointbase
Microsoft SQL Server
MySQL
- Eclipse 插件支持。
NetBeans | Eclipse | |
CVS(版本控制) | √ | √ |
SVN(版本控制) | − | √(插件支持) |
JUnit(测试框架) | √ | √ |
Refactoring(代码重构) | 部分支持 | √ |
Javadoc(文档生成) | √ | √ |
NetBeans | Eclipse | |
代码折叠 | √ | |
智能括号/引号 | √ | |
智能补全代码 | √ | |
自动格式化代码 | √ | |
书签支持 | √ | |
任务/问题列表 | √ | |
错误提示及更正建议 | √ | |
特有功能 |
|
|
GUI库支持 | NetBeans | Eclipse |
SWT | − | √ |
SWing | √ | √ |
AWT | √ | √ |
Beans | √ | √ |
概述 | 具有极其简单易用的GUI设计器,可以与VB、Delphi的窗体设计器相提并论。
轻松简单的属性及事件编辑。支持窗体快速预览。 独立的窗体文件和代码文件紧密关联,设计器自动为窗体生成只读代码。 速度比较快,资源占用较少。 |
Eclipse的GUI设计器是一个叫做Visual Editor的部件。
其设计器将工作区分隔为代码区和界面区,在任何区域的更新都将反映到另一个区域。 窗体会自动预览。仿Delphi的组件板设计得漂亮又直观。 窗体设计器生成的代码可以直接改写。 没有专用的窗体文件,窗体是实时按代码生成的。 速度很慢,资源占用比较高。估计需要512MB内存才能跑起来。 其Swing界面的设计似乎不支持Abosolute布局方式。 总的来说,尽管很漂亮,但表现只能说是差强人意。 |
- NetBeans 在代码行开头点击即可设置/取消断点。
支持条件断点、单步执行等流程控制功能。
支持局部变量、监视、堆栈显示等功能。
支持会话、线程的查看及修改。
提供了完善的远程调试功能。
操作简单,功能强大。
- Eclipse 带有专用的Debug视图并能自动切换。
其Debug的功能和Delphi的Debug比较相似,Inspect、Watch等应有尽有。
支持反汇编、内存、堆栈、寄存器显示等高级功能。
支持会话、线程的查看及修改。
似乎没有远程调试能力。
- 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的资源占用太高,而为了实时生成窗体而付出的时间代价则更是巨大,甚至有时会让人无法忍受。
这是一个高品质的开发平台。也许唯一的遗憾就是其资源占用问题吧。
我们的目标是要开发一个GUI应用,窗体中显示一行文字"Hello World!",下方有一个[确定]按钮,点击该按钮则程序退出。
我们分别使用NetBeans和Eclipse开发这一简单的程序,以此更能体验两个开发工具优缺点。
我们采用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设计器
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. NetBeans实例运行效果(JDK1.5.0)
这里采用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设计器(属性窗口已经放到右边了)
7.用[Outline]栏导航到main方法内,在第4行代码"thisClass.sShell.open();"前插入如下代码:
thisClass.label.setText("Hello World!");
出现代码补全框时,选中补全字符串后按回车键、[.]或[(]键都可以完成输入。
8.用[Java Beans]栏导航到[button-"确定"]中的mouseUp方法,删除其中原来的那行代码,并在方法中加入代码: sShell.close();
9.在代码工作区中点出右键菜单后选择[源代码]->[格式化]来自动格式化代码。
图11. Eclipse的代码工作区(已经最大化工作区)
-Djava.library.path=${system:ECLIPSE_HOME}/plugins/org.eclipse.swt.${system:WS}_3.0.1/os/${system:OS}/${system:ARCH}
点击下面的[Run]按钮,在弹出的对话框中点[确定]以保存并编译执行项目。
图12. Eclipse实例运行效果(GTK+)