2001年11月,IBM 把Eclipse 捐献给了开源社区。2006年的今天,Eclipse度过了它的五岁生日。可喜可贺……
今天的Eclipse社区空前活跃,而Eclipse 也独占鳌头——逐渐成为Java开发环境中最主流、市场份额占有最多、功能最强大以及插件最丰富的IDE。另外Rails爱好者经常使用的IDE之一的RadRails也是基于Eclipse的。
今天的Eclipse 随着Java 开发人员一起成长而来,而广大的Java 开发者们也见证了Eclipse的发展历程。
2001年11月,Eclipse 1.0 发布,开源。
2003年4月,Eclipse 2.1 发布,虽然大受欢迎但插件模型仍然是静态的。
2004年6月,Eclipse 3.0 正式发布,真正成为一个完美的、可扩展的开发环境。此时Java开发人员已经达到300万。
2005年6月,Eclipse 3.1 发布,30天达到100万下载量。而此时全世界有大约450万名开发者正在使用Java 技术。
2006 年1月,Eclipse 国际高峰论坛首次登陆中国。
2006 年7月,Eclipse 3.2 正式发布,成就新里程碑……
总结一下围绕Eclipse 的几大热点:
一、Java IDE 之争
如果你是一个Java支持者,你一定不会陌生Netbeans,因为大家都是从Netbeans的爱恨交加中走过来的,初识Netbeans还是3.6版本,当时无论从界面还是运行上,真的不敢恭维,但是谁又能说Netbeans会停止它前进的脚步呢?由于开源脚步的加快,Borland提前宣布退出,给了Netbeans更多的机会,也让Netbeans在业界得到专业人士的赏识,但是他真的走出充当配角角色吗?真的像Netbeans高级宣传官所说的那样走出低谷了吗?
Netbeans拒绝与Eclipse合并
随着开源的兴起,Jbuilder光辉不在,Netbeans的市场份额在今年上半年有了明显的增长,据国外权威调查机构显示,Eclipse 市场份额占45%,Netbeans占 30%,Jbuilder占15% ,其它IDE占5%,从调查分析来看,Netbeans的市场占有率正在上升,原来三国鼎立的局面因为Jbuilder的退出,使Eclipse对决 Netbeans大战提前上演了,都说这是一场势均力敌的战争,倒不如说是两大软件巨头的撕杀,2006年初IBM就开始和Sun公司进行谈判,数月谈判结果给了IBM当头一棒,Sun公司拒绝加入IBM主导的开源项目Eclipse,在宣布放弃Eclipse同时,不久Sun表示,他们不再试图将Sun 发起的NetBeans.org开放源Java工具项目与Eclipse合并。
Sun公司认为,加入Eclipse阵营需要打破两个组织之间的技术和组织差别,而这将对NetBeans和Eclipse项目现有的参与者造成不利影响。Sun公司开发平台集团副总裁RichGreen表示,“我们双方都确定我们不希望放弃现有项目”,“我们确定,合作社团相对于削减成本等问题更为重要。”
Eclipse和NetBeans开放源项目目的是开发软件以允许不同的Java开发工具在单个编程应用中能够相互嵌和。比如,开发人员可以将一家公司提供的源代码管理工具与其他公司的代码编辑器综合在一起使用。
Green称,双方起初讨论放弃NetBeans,但很快转而谈判寻求将两个开放源项目统一在一个单一实体下。理论上,将两个项目和并可以建立一个针对同一技术的更大社团,并确保两个项目不会建立不兼容的代码。但Green表示,如果重写各自的插件系统以及相关的工具平台需要双方花费很长时间和巨大开销。比如,Sun的商业开发工具建立在NetBeans的基础上,如果转而采用Eclipse标准则需要进行重大修改。
Sun和IBM Eclipse未能走到一起,在两大开放源工具项目之间建立起一个鸿沟。Green表示,这样也为开发商提供了更多的选择。并且,Sun仍然希望将来与Eclipse重开谈判之门。
相对与Sun的内敛相比,Eclipse基金会的执行理事Mike Milinkovich要自信得多,在谈到老竞争对手时,他说这本来就是一场没有悬念的战争,我们已经拥有了足够多的用户,而他们没有,很明显我们会赢得这场战争,我只能祝他们好运。
关于两位当事人的观点我们的记者也采访了香港政府IT部门架构师Recher,他说这本身就是一场实力悬殊的竞争,虽然近期 Netbeans是在市场战略上取得一些佳绩,但不能说他们真正的赢得了这场胜利,他只不过是在分享Jbuilder抛弃的市场份额而已,Eclipse 并没有因为它的增加而减少,Sun公司一直在用一种狭隘的心态在抵制自已竞争对手,最近和IBM的谈判崩裂,以及Sun一直都没把OSGI列放JMX的标准中,就是很好的例证。
Eclipse未来之路
同时Recher也谈到了Eclispe开发在3个方面占胜了Netbeans.
1. 在技术上Eclipse是良好的OSGI框架实现(Equinox是OSGi R4 core framework的一个实现,而Eclipse IDE是基于Equinox项目开发的一个典型例子OSGI的好处基本就是面向组件开发,并提供一个十分好用的plugs-in框架,开发性强。况且 Eclipse本身就是一个RCP的容器---为未来RCP应用程序的将来提供不可缺少而且成熟的工具和容器。
2. 在市场上Netbeans支持的项目和工具太少了,因为很多开源项目都提供了大量Eclipse的plugs-in组件,这些是其它IDE 工具无法比拟的, 现在的 IBM已经和Eclipse完全整合了(以前的WSAD还不能说完全,但IRAD6.0就已经很完全了),同时IBM推出RSA(Rational Software Architect)的工具可以把Eclipse+UML+RUP+IRAD比较完美结合,至少我认为它是目前出来最好的工具了,整个RUP都可以涵盖,而且还是支持UML2.0.
3. 在背景方面Eclispe的流行完全是IBM在它萌芽阶段进行资金赞助的产物,有了IBM这个蓝色巨人的支持, 它的前途无可限量,但是也不能小看了Sun公司的这个冷面杀手,有Sun这个强有力的后盾,双方以后的竞争会很激烈的.
其实对于Eclipse未来,我们国内的架构师们只是在应用的角度上来看得在这个问题,Mike Milinkovich在9月初的Eclipse 2006世界大会指出了Eclipse未来的发展和新技术走向,他告诉我们首先是围绕富客户端平台的继续增长和采用。支持更多的语言。下个季度,我们计划在Eclipse内推出首版的PHP IDE项目,我们认为这是一个非常令人激动的项目。因为无论是对企业开发者还是Web开发者来说,PHP是一门非常重要的语言,因此使得Eclipse工具支持PHP是一件令我们激动的事情。
NetBeans未来走向
在IDE开发工具竞争激烈的今天,Sun也逐步的调整了Netbeans市场战略,在今年JavaOne大会上,Netbeans高级宣传官 Tim Boudreau也谈到了Netbeans以后发展动向,他告诉我们,自从1998年以来,NetBeans并没有只为Java而工作。它也是C/C++工具的基础,Sun公司已经将它转用于Solaris很多年了,对它的支持正在进行扩展化和通用化,不再仅限于Solaris。NetBeans也是HP公司用于OpenVMS的IDE,支持COBOL, Fortran, C/C++和其它语言。例如在今年JavaOne大会上我们演示的对VB的支持—实际上是读取VB代码,编译成字节码,然后运行,有时会比它本应生成的本地代码运行还要快。因此,我们已经开始了这个项目,也会有围绕脚本方面的开发做更多的努力。NetBeans并不一定要局限于Java IDE平台—它对于Java已经有了很大地支持,那是人们首先要考虑的事情。但是就NetBeans目前的发展来看,它已经成为了一个语言无关的平台。
正象我们早期提到的,重要的东西的寿命总是很长。一些人声称Java会在5或10年里死亡,我们都会迎来下一个大的事物。即使真是那样, NetBeans也一样可能会支持下一个事物的到来,但是对一个语言的寿命做假设的时候,有一件重事情要考虑,对于期望任何特殊的程序语言或范例的盛行周期日益变得更长是很实际的,这有两方面的原因。首先,我们在绘制人们如何考虑告诉计算机工作的方式上的蓝图方面正越来越好,其次,一个语言统治的时间越长,它的代码就会越多,因此移植的代价也就越大。于是你不得不紧跟一些事情,这些事情会强迫变化中的语言很丰富多彩。
现在有很多有关脚本语言的谈论,但是我期待在主流编程语言中的下一个重大变化是让直觉上类似多核芯片的并行方式成为规范标准。我确信在未来的时间里这些目标将会成我们考虑的主流。
从上述的采访中我们明显看到了开发公司的架构师对于Eclipse的钟爱程度,Eclipse已经深入人心, Eclipse的强大是显而易见,记得Ruby刚刚在网上火爆的时候,Eclipse就迅速作出反应,推出了支持Ruby开发插件,可是我们在反观 Netbeas在5.5的版本还没有这样的计划,Java之父Gosling曾说过未来的Netbeans不将是纯粹的Java开发工具,它要涉及各个方面,以后也会支持Ruby开发,可是在他说这些话的时候,Eclipse已经在前进的路上了,这难免令所有支持者感到失望,未来的日子,谁将主宰我们都拭目以待。
二、Eclipse v.s. 微软
在Eclipse IDE出现之前,Java开发工具主要是面向Swing(Java图形化工具)的,那时候他们很难与微软的Visual Studio一争高低,但是Eclipse IDE的出现彻底改变了这种状况。
下面笔者将按一些重要的开发相关分类,来比较当前这两个最具代表性的开发工具,看一下在每一个分类中他们谁究竟要更强大一些。
1、核心开发环境
比较项目:语法高亮、错误预防、代码重构、代码援助(code assist)、编译、运行、调试
获胜者:Eclipse
Eclipse是一个强大的怪兽。它具有令人难以置信的智能代码援助(code assist)、丰富的代码重构功能、错误预防和“代码修正”建议,同时还具有非常强大的调试器,可以说在每一个功能上都打败了Visual Studio。无论是Visual Studio 2005还是Visual Studio Express,都称的上一个非常好的集成开发环境(IDE),在Eclipse支持的所有功能中,它也同样支持很多。但是在Visual Studio中没有一个功能,能像Eclipse中那样强大和专业。因此,在这个分类中,我把获胜者定位Eclipse。
2、综合开发
比较项目:数据库、系统集成、web部署
获胜者:Visual Studio
我知道,感觉这个分类就像是在骗人,因为Vistual Studio只支持与基于Windows的产品配合使用,但是Visual Studio与这些产品配合的如此天衣无缝,我必须承认来自微软的Visual Studio占据了优势。在Visual Studio中创建SQL Server支持的BizTalk、ASP.NET或C#解决方案如此容易,集成的如此好,产品间的差别如同完全透明一样。Eclipse和他的商业伙伴之间也有非常好的各种开发模型以实现互相支持,尽管他们也可以比较好的配合使用,但是不像Visual Studio中那么浑然一体。
3、源程序控制和配置管理(SCM)
如同上面一类,Visual Studio在这一方面可以很轻松的实现。他可以与大部分运行于Windows上的工具配合使用,其他厂商具有对其良好的支持。但是,Eclipse可以与几乎所有支持平台上的所有SCM厂商配套使用,而且配合的非常好。最重要的是,它可以与两个可能是最重要的开源相关的SCM产品完全整合,即Subversion和CVS,这两个工具已经被数千个商业和开源项目所使用,因此我没有理由不宣布:
获胜者:Eclipse
4、软件质量和测试
测试对于保证软件开发质量有着非常重要的作用,Eclipse内置对JUnit单元测试的支持,测试首要的开发体系和代码错误预防是Eclipse平台不可或缺的功能。它内置对JUnit(包括JUnit 4或TestNG插件)的支持,使得测试非常容易且非常自然。Eclipse还非常善于检测潜在的错误(例如self assigning class properties in setter methods),代码格式问题和修补建议。不过,在Web服务测试方面,Visual Studio要超过Eclipse,在Visual Studio中测试Web服务非常容易和简单,这是这个工具中我最喜欢的功能之一,甚至在其免费版的Express版中也支持该功能。
获胜者:Eclipse
5、建立和部署
这是比较难判断的一项。.NET作为框架比J2EE更加容易部署,但是同时也给我们的比较工作带来了困难,很难在部署过程中来比较这两个工具。由于Eclipse内置了对ANT创建工具的支持,和对基于“热”部署的类加载器的支持,所以可以很好的部署J2EE应用程序。但是Visual Studio的部署能力同样根本不需要你担心,它可以完全控制目标部署服务器,可能是IIS,SQL Server或BizTalk。
获胜者:平局
总获胜者:Eclipse
Eclipse如此强大,以致于业界的任何其他IDE工具都不能对其构成威胁,包括Visual Studio。有经验的程序员在使用Eclipse的时候,会一种感觉:IDE可以与它心意互通。在所有方面,这是一个开发者为开发者开发的工具。
Visual Studio也非常不错,它是一个非常伟大且高效的工具,它是一个.NET开发的完美工具。很明显,微软已经尽了最大的努力来为.NET开发者提供一个非常高效且非常直观的开发工具。甚至,其免费版的Visual Studio Express版也非常令人印象深刻。
但是,由于得到了如此巨大的开发社区的反馈信息和开源开发者的无私奉献,Eclipse明显已经先行一步,实际上重新定义了IDE的概念,把传统IDE带入到一个更强大更智能的境界,使它本身变为开发者思考过程的一种延续和扩展。因此我选择了Eclipse作为最后的胜利者。
三、Java 及Eclipse 未来之路
Eclipse基金会的Eclipse 2006世界大会9月初在麻省的剑桥举行,大会宣扬了这个开源应用开发项目的成功,并表示之所以获得今天的发展一方面是因为吸引了开发者的兴趣,一方面得到了来自诸如IBM的大公司的支持。InfoWord编辑全程采访了Eclipse基金会的执行理事Mike Milinkovich,他谈论了该基金组织所取得的成绩、以及与微软和Sun之间的竞争关系,并说到了Java以及Eclipse的未来之路。
InfoWord:据你估计基于Eclipse的软件产生了多少价值的财富,或者Eclipse对用户的主要吸引力依然在于其全部免费么?
Mike Milinkovich:按照围绕Eclipse建立的生态系统的大小,我认为我们拥有一个比较好的数据在量化Eclipse产生的财富,我非常确信,这个数字是十亿美元甚至更多,但是我们没有确切的数字。
对于你说的Eclipse的免费成为其吸引开发者的因素,我认为不完全准确,Eclipse生态系统模型与你说的有一点不同,因为对Eclipse团队总体上来说,几乎是唯一一个致力于在免费平台上创建一个商业盈利软件的生态系统。因此,我们的确提供开源的Eclipse开发工具和Eclipse框架,而且这都是免费提供的。但是我们更希望看到的是,在Eclipse生态系统中人们可以通过Eclipse平台来获得财富。
InfoWord:刚才我碰到一个技术基于Eclipse的公司,他们没有销售人员。你认为这是软件公司发展的一个趋势吗?还是部分开源公司因为他们没有看到需要而不设销售人员?
Mike Milinkovich:从历史的角度来看,企业软件有很多通过直销渠道销售的情况。随着时间的过去,我相信,我们正在开始看到开源软件产品也成功的应用了直销模式,这个领域一直是传统软件产品所占据的。说到这儿,我想起Sugar CRM和Compiere ERP和开源产品,这些平台或这些产品拥有非常非常低的销售成本,因此客户更容易接受他们。我认为随着时间的过去,会有越来越少的软件销售人员。
InfoWord:对于Sun将加入Eclipse或合并NetBeans和Eclipse的传闻,您怎么看待该事件的进展?
Mike Milinkovich:当然不是。Sun已经非常明确表示,除了继续推动他们的NetBean策略,不会对任何其他事情感兴趣。
InfoWord:你如何看待目前存在的两个竞争对手?有利于竞争吗?
Mike Milinkovich:我们当然不会惧怕竞争,而且很明显我们在赢得这种竞争, SUN似乎说的与您说的不同, 那么祝他们好运。我已经得到很多用户,而他们没有。
InfoWord:NetBeans或Windows .Net,你认为哪一个是Eclipse的主要竞争对手?
Mike Milinkovich:我们一直很明确,Eclipse将一直面临来自微软的竞争。
InfoWord:那么你如何经营Eclipse?
Mike Milinkovich:实际上,我们五年前就开始运作了,我想说从零开始发展,五年中Eclipse的成长是相当显著的。
InfoWord:现在Eclipse开始不重视Java而将重点放在其他语言上吗?例如像.Net一样的某些脚本语言?
Mike Milinkovich:我不认为我们不再对Java重视。由于Eclipse正在不断成长,有更多的项目加入进来。现在有更多的资源帮助Eclipse支持更多的语言和平台。现在几乎所有的Eclipse项目都是有Java编写代码,因此我们很明显是Java的重要用户。但是就Java是我们在Eclipse内支持的唯一语言或平台而论,这对于Eclipse是永远不可能的。只要我们发现人们喜欢的平台或语言,我们就将支持他。
InfoWord:请问Eclipse的发展方向,以及最近有什么新技术?
Mike Milinkovich:说到这个,很多事情一下子涌现到我的脑海中。首先是围绕富客户端平台的继续增长和采用。支持更多的语言。下个季度,我们计划在Eclipse内推出首版的PHP IDE项目,我们认为这是一个非常令人激动的项目。因为无论是对企业开发者还是Web开发者来说,PHP是一门非常重要的语言,因此使得Eclipse工具支持PHP是一件令我们激动的事情。
四、开源的历史,Eclipse的历史
序言
与铁匠挥洒汗水和忍受高温相比,软件开发是一个既干净又抽象的过程。不过,代码与钢铁的相同之处就是它们都有延展性——通过足够的技巧和努力,可以把钢铁或代码变成精致的工具或巨大的机器。
上回我们品尝第一杯咖啡时,只说出了第一句“Hello, world!”,手工编写、编译、调试、运行Java程序,一定让你手忙脚乱,饱尝Java咖啡的苦涩。若要完成一个大型项目,这样的徒手作业无异于愚公移山。
对Java开发者来说,没有什么能够比得心应手的集成开发环境(Integrated Development Environment,简称IDE)更令人着迷。 所谓IDE,就是把编写、编译、调试、运行集成在一个统一开发环境中的软件,并且还增加了许多提高开发效率的实用功能,比如高级编辑功能、自动编译、设置断点逐步调试、在IDE内部显示运行结果等。徒手开发好比刀耕火种,用IDE可谓进入了蒸汽时代。
十年前,由于技术所限,IDE还是奢侈品。随着科技的飞速发展,十年之后的今天,界面易用、功能强大、速度飞快的IDE已经无法成为人们热衷的话题,即便免费也难以成为怦然心动的惟一理由。套用经济学术语,人们渴望的不仅仅是一个传统的IDE,而是一种边际效应递增的开发工具——更多的可用资源、更高的开发效率、更合理的开发方法,以及更保值的知识投入——免费当然再好不过了。
Eclipse就是这样一个开发工具——开放源代码、免费、优秀的厂商支持,并且拥有丰富的扩展资源。
Eclipse
1.Eclipse的历史
Eclipse的前身是IBM的Visual Age for Java(简称VA4J)。把这个项目免费赠送给Eclipse社团(www.eclipse.org)前,IBM已经投入超过四千万美元进行研发。Eclipse社团的创始人还包括Borland、Merant、QNX Software Systems、Rational Software、Red Hat、SuSE、TogetherSoft和Webgain,后来加入的还有Oracle等公司,实力相当雄厚。如今,IBM通过附属的研发机构Object Technologies International(简称OTI),继续领导着Eclipse的开发。
黄糖故事
OTI的传说
OTI是杰出的面向对象开发工具的研究组织。早在1988年,他们对Smalltalk已经有了深入研究。在《Java咖啡馆(1)——叹咖啡》的黄糖故事中我们已经介绍过,Smalltalk是第一个完全面向对象的动态计算机程序设计语言。1996年加入IBM后,他们推动了IBM著名的Visual Age系列开发工具的生产。实际上,IBM当时的VA4J是用Smalltalk编写的,并且为Java融入了许多Smalltalk的先进理念,比如没有“文件”的概念,版本控制被提高到方法学的层次。
Eclipse可以看做VA4J的Java语言实现,但并没有受到Smalltalk太多的影响和制约。为了更加实用,Eclipse去掉了一些纯OO(面向对象)的元素,在理想主义与实用性之间找到了一个很好的平衡点。虽然这使得一些纯OO的追随者伤心欲绝,但结合实际应用、聆听用户的声音,或许这正是Java如此成功的根本原因吧。
2.Eclipse的构架
如果把Java开发者比作铁匠,那么把Eclipse比作铁匠铺就再合适不过了——你不但能够制作产品,还能够打造开发工具。
当下载了Eclipse,你直接接触到的是:
★用来编辑和调试Java源代码的Java开发工具箱(Java Development Toolkit,简称JDT),功能相当于IDE,用来开发产品。
★可以扩展Eclipse本身的插件开发环境(Plug-in Development Environment,简称PDE),好比Winamp等多媒体播放器的插件开发包,用来打造开发工具。
实际上,Eclipse的基础是Eclipse平台(Eclipse Platform),提供软件开发工具集成的服务,而各种开发工具,包括JDT和PDE,都是用插件的形式提供的。插件设计使得Eclipse具有开放式可扩充的结构。比如,你想开发C/C++程序,装一个C开发工具(C Development Toolkit,简称CDT)插件代替JDT即可。同理,通过开发相应插件,Eclipse也可以用来开发微软的C#程序。Eclipse设计的优美之处在于,除了小部分运行的核心,其他都是插件(见图1)。
通过插件机制,Eclipse体现了一种主观能动的态度:它提供给你一个开放的平台、一个平等参与的机会,以及一些需要遵守的总体规则,然后你尽可快意恩仇,以出人意料但又令人拍案叫绝的方式来使用Eclipse。如果你有新的需要而Eclipse没有满足,自己动手做个插件吧,不但丰衣足食,对整个Eclipse社群也是直接的贡献。
主观能动并非开发工具的惟一态度。与Eclipse竞争的开发工具,比如Borland公司的JBuilder,采用的是另一种做法:你支付高昂的费用,Borland提供一个近乎全能的JBuilder——包括支持Eclipse不内建提供的JSP(服务器端动态网页技术)、EJB(一种企业级数据持久技术)和Web Services(Web服务)的开发。如若你要求新的功能,你可以告诉善于聆听用户意见的Borland,或许他们会在下一个版本中加上新特性满足你的要求。当然也可能完全不理你,认为你的需求不足以令他们开发一个新特性。Borland公司的态度充满了商业的严谨,JBuilder也堪称经典,但Eclipse的那种潇洒和自由,用户的那种强烈的归属感,溢于言表。
3.开放源代码
Eclipse是一个开放源代码的软件,是以Common Public License (简称CPL)授权形式发布的。开源通常意味着免费,Eclipse也不例外。
虽然Eclipse是一个开放源代码的项目,但由IBM这样一个商业主体领导着项目的开发,这一点跟普通的趋于无政府主义的开源软件有所区别。实际上,CPL授权旨在促进Eclipse平台上的商业应用,呈现一个基于Eclipse的免费和商业软件共存的系统。
公开源代码的一个自然结果,就是Eclipse开发者一直在听取用户的意见——实际上,Eclipse开发者本身就是Eclipse最忠实的使用者。而Eclipse开发者中,不乏IBM的杰出科学家,所以其品质及理念极为出色。当初Eclipse 2.1发布时,曾经出现过“哄抢”的惨烈局面——下载量太大导致服务器带宽不够,要想在第一周内得到一份拷贝,也不是那么容易!
4.丰富的扩展资源
Eclipse是软件开发者的铁匠铺,炼炉、铁砧以及锤子,一应俱全。就像铁匠用已有的工具打造钳子等新工具一样,你还可以用Eclipse开发Eclipse的插件来扩展其功能。得益于在Java社团中极高的知名度以及开源的本质,很多个人或者厂商提供了许多工具来扩展Eclipse,比如开发J2EE、UML建模等插件,很少有找不到相应功能的插件。此外,大多数工具都是免费的。
Eclipse的获取与安装
1.下载并安装Eclipse
下载Eclipse的网页是http://www.eclipse.org/downloads/index.php。鉴于令人朝思暮想的Eclipse 3.0 Release于2004年6月25日左右发布,我们这里将采用Eclipse 3.0 M9 Stable Build进行讲解。Windows版本的文件名是Eclipse-SDK-3.0M9-win32.zip,约85.3MB。
安装Eclipse异常简单,把ZIP包中的Eclipse目录解压缩到C盘根目录中即可。
黄糖故事
关于开源软件版本的行话
许多开源软件都有若干约定成俗的版本称谓,好比行当黑话,不了解会吃大亏。
Release:实现承诺的特性,并且通过彻底测试的稳定版本。这种版本一般非常健壮,并且拥有许多可以配合使用的第三方软件,适合开发商业项目。在这篇文章撰写之时,Eclipse的最新Release版本是2.1.3,于2004年3月10日发布。Release相当于Windows正式版。
Stable Build:新的Release版本一般要经过若干个开发周期,在此期间,如果某个版本经过测试相对稳定,开发人员便会把它发布成Stable Build,供渴望尝试新特性的用户在第一时间体验。相当于Beta测试版本的Windows。
Integration Build:当Eclipse开发人员开发出稳定部件时发布的版本,当然不能保证部件之间能够友善合作。如果可以,则将升级为Stable Build发布。不推荐普通用户下载使用。
Nightly Build:每夜构筑的版本,是自动工具每天晚上通过自动编译得到的版本,方便开发者之间交流。这种版本的稳定性没有任何保障,不推荐用户下载使用。
2.启动Eclipse
你必须安装了J2SE 1.4以上的SDK或JRE才能运行Eclipse,具体安装方法请参考《Java咖啡馆(2)——第一杯咖啡》一文。一切就绪后,双击“C:\Eclipse\Eclipse.exe”便能启动Eclipse了。首次启动Eclipse,会让你配置工作区,选择默认即可(见图2)。
用Eclipse开发Hello World!
让我们通过Hello World!程序来体验地道的Java开发。
第一步:新建Java项目
选择“File→New→Project...”,选择“Java Project”,点击“Next”,便打开了“New Java Project”向导。在“Project name”中填入“HelloWorld”,不需要进行其他设置,直接左击“Finish”按钮。
第二步:新建HelloWorldApp类
选择“File→New→Class”,在“New Java Class”向导中的Name框中输入“HelloWorldApp”,并且在“public static void main(String[] args)”选项前面打上勾。
这时,向导会有一个提示,由于项目简单,不需要用到package,所以不必理会。最后按下“Finish”按钮。这时你会发现,上期连载中的Hello World!程序框架代码已经自动生成。这就是Eclipse的代码生成(Code Generation)特性(见图3)。
第三步:添加打印语句
与上回连载中的代码相比,现在仅仅缺少一句输出“Hello World!”字样的语句:
System.out.println("Hello World!");
让我们看看Eclipse中如何快速输入。
首先把光标移动到“main”函数那行的“{”后面,回车,光标会自动跳到下一行并且多一个Tab位的缩进,自动保持代码的美观。现在输入“System”,注意“S”大写。然后输入“.”,这时你会发现自动弹出一个菜单,显示了“System”所有成员变量和方法!接着输入“o”,弹出菜单会自动过滤以“o”打头的成员变量和方法,所以只剩下“out”了,只要按下回车,“out”便自动加到“.”的后面。继续输入“.”,又会跳出菜单显示“out”的方法(见图4)。由于“out”的众多方法中叫做“print”的很多,你可以直接输入“println”或在下拉菜单中搜索,并按下回车。这时,你会发现“println”后面的括号都自动生成了。把光标移动到括号里面,输入引号,Eclipse会自动给你添加另外一半引号。在两个引号中间输入“Hello World!”。最后把光标移动到这行的最后,输入“;”号。
虽然叙述起来很罗嗦,但你自己操作一遍就能体会这样的编码有多舒服。这就是Eclipse的代码完成(Code Completion)功能。代码完成能够:
★通过自动过滤加快输入的速度;
★通过选择与回车键选择的方式来避免输入错误;
★当你记不清某个类的成员变量或者方法时可以有效地提示你。
这里还有一个实用的技巧:当你的源代码中存在语法问题,Eclipse编辑器会用红色大叉外加波浪线来标记,你可以根据提示随时修正。
第四步:运行Java程序
现在直接在Eclipse中运行这个程序,看看执行结果。
按下“Run→Run...”,Eclipse会弹出运行设置向导,询问运行配置。这个程序是一个Java程序,所以在Configurations里面选择“Java Application”,然后按下“New”按钮。当Eclipse创建好配置以后,你只需要按下Run便能够看到结果了(见图5)。
小结
实际上,Eclipse博大精深,而且蕴含许多精辟的方法与概念,是许多IBM科学家多年积累的经验。但由于Java咖啡馆主题还是Java语言,不能让Eclipse喧宾夺主,然而Eclipse中的许多哲学思想通用于软件开发,很多软件方法与技术令人爱不释手。希望你有时间能多多把玩Eclipse,这个软件丝毫不亚于几千美金的商业软件!最后,推荐阅读Jim D'Anjou等人撰写的《Using Java Development Tools in Eclipse》一文,该文章的URL是http://www.awprofessional.com/articles/article.asp?p=31789,文章对JDT的使用有详细的介绍。
五、Eclipse 插件
Eclipse下载
EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在这里下载
http://www.eclipse.org/downloads/index.php
2 lomboz J2EE插件,开发JSP,EJB
http://forge.objectweb.org/projects/lomboz
3 MyEclipse J2EE开发插件,支持SERVLET/JSP/EJB/数据库操纵等
http://www.myeclipseide.com
4 Properties Editor 编辑java的属性文件,并可以自动存盘为Unicode格式
http://propedit.sourceforge.jp/index_en.html
5 Colorer Take 为上百种类型的文件按语法着色
http://colorer.sourceforge.net/
6 XMLBuddy 编辑xml文件
http://www.xmlbuddy.com
7 Code Folding 加入多种代码折叠功能(比eclipse自带的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
8 Easy Explorer 从eclipse中访问选定文件、目录所在的文件夹
http://easystruts.sourceforge.net/
9 Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等
http://fjep.sourceforge.net/
10 RegEx Test 测试正则表达式
http://brosinski.com/stephan/archives/000028.php
11 JasperAssistant 报表插件(要钱的哦~)
http://www.jasperassistant.com/
12 Jigloo GUI Builder JAVA的GUI编辑插件
http://cloudgarden.com/jigloo/
13 Profiler 性能跟踪、测量工具,能跟踪、测量B/S程序
http://sourceforge.net/projects/eclipsecolorer/
14 AdvanQas 提供对if/else等条件语句的提示和快捷帮助(自动更改结构等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
15 Log4E Log4j插件,提供各种和Log4j相关的任务,如为方法、类添加一个logger等
http://log4e.jayefem.de/index.php/Main_Page
16 VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
17 Implementors 提供跳转到一个方法的实现类,而不是接口的功能(实用!)
http://eclipse-tools.sourceforge.net/implementors/
18 Call Hierarchy 显示一个方法的调用层次(被哪些方法调,调了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
19 EclipseTidy 检查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
20 Checkclipse 检查代码的风格、写法是否符合规范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
21 Hibernate Synchronizer Hibernate插件,自动映射等
http://www.binamics.com/hibernatesync/
22 VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
23 EditorList 方便的列出所有打开的Editor
http://editorlist.sourceforge.net/
24 MemoryManager 内存占用率的监视
http://cloudgarden.com/memorymanager/
25 swt-designer java的GUI插件
http://www.swt-designer.com/
26 TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html
27 XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
28 quantum 数据库插件
http://quantum.sourceforge.net/
29 Dbedit 数据库插件
http://sourceforge.net/projects/dbedit
30 clay.core 可视化的数据库插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins
31 hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync
32 struts-console Struts插件
http://www.jamesholmes.com/struts/console/
33 easystruts Struts插件
http://easystruts.sourceforge.net
34 veloedit Velocity插件
http://veloedit.sourceforge.net/
35 jalopy 代码整理插件
http://jalopy.sourceforge.net/
36 JDepend 包关系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html
37 Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/
38 doclipse 可以产生xdoclet 的代码提示
http://beust.com/doclipse/
39 SQLExplorer,在Eclipse 中连接各种数据库进行操作使用
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=31124
JSEclipse
subversion
版本控制,相当于CVS
安装:http://subclipse.tigris.org/install.html
Name: Subclipse
URL: http://subclipse.tigris.org/update_1.0.x
CSS Editor for Eclipse
http://csseditor.sourceforge.net/
FacesIDE
FacesIDE是一个用于开发JSF的Eclispe插件.它可以可视化编辑faces-config.xml文件并且提供代码编辑与校验,预览JSF的JSP文件.FacesIDE包含MyFaces来作为JSF的实现
http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=FacesIDE
Eclipse SQLExplorer plugin
一个数据库管理插件
http://sourceforge.net/projects/eclipsesql
Poperties Editor
一个在编辑完成后可以将资源文件中的中文编码格式转换为unicode编码的插件,在开发国际化应用程序的时候非常有用
http://propedit.sourceforge.jp/eclipse/updates/
eclipseME
http://eclipseme.org/updates/
Eclipse加速插件KeepResident
http://suif.stanford.edu/pub/keepresident/
MyEclipse J2EE开发插件,支持SERVLET/JSP/EJB/数据库操纵等
www.myeclipseide.com
Properties Editor 编辑java的属性文件,并可以自动存盘为Unicode格式
http://propedit.sourceforge.jp/index_en.html
http://propedit.sourceforge.jp/eclipse/updates/
Colorer Take 为上百种类型的文件按语法着色
http://colorer.sourceforge.net/
XMLBuddy 编辑xml文件
www.xmlbuddy.com
Code Folding 加入多种代码折叠功能(比eclipse自带的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
Easy Explorer 从eclipse中访问选定文件、目录所在的文件夹
http://easystruts.sourceforge.net/
Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等
http://fjep.sourceforge.net/
RegEx Test 测试正则表达式
http://brosinski.com/stephan/archives/000028.php
JasperAssistant 报表插件(强,要钱的)
http://www.jasperassistant.com/
Jigloo GUI Builder JAVA的GUI编辑插件
http://cloudgarden.com/jigloo/
Profiler 性能跟踪、测量工具,能跟踪、测量BS程序
http://sourceforge.net/projects/eclipsecolorer/
AdvanQas 提供对if/else等条件语句的提示和快捷帮助(自动更改结构等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
Log4E Log4j插件,提供各种和Log4j相关的任务,如为方法、类添加一个logger等
http://log4e.jayefem.de/index.php/Main_Page
VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
Implementors 提供跳转到一个方法的实现类,而不是接中的功能(实用!)
http://eclipse-tools.sourceforge.net/implementors/
Call Hierarchy 显示一个方法的调用层次(被哪些方法调,调了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
EclipseTidy 检查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
Checkclipse 检查代码的风格、写法是否符合规范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
Hibernate Synchronizer Hibernate插件,自动映射等
http://www.binamics.com/hibernatesync/
spring updatesite 插件
http://springide.org/updatesite/
VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
EditorList 方便的列出所有打开的Editor
http://editorlist.sourceforge.net/
MemoryManager 内存占用率的监视
http://cloudgarden.com/memorymanager/
Eclipse的游戏插件
http://eclipse-games.sourceforge.net/
JBoss-IDE
http://jboss.sourceforge.net/jbosside/updates/
自动反编译class,安装后要设定class文件缺省关联到jode
http://www.technoetic.com/eclipse/update
jigloo swing/sw设计工具,里面自带的form/anchor布局很好用!
http://cloudgarden.soft-gems.net/update-site/
jinto的资源文件编辑工具,同时编辑多种语言,而且自动转换成iso8859-1编码。很好用!
http://www.guh-software.de/eclipse/