本书由IBM Eclipse Jumpstart小组成员编写,荣获第15届Jolt大奖,是全世界Java开发人员学习Eclipse的首选读本。该书从第1版开始,就以经典的内容影响无数Java程序员,受到业界专家和读者的极大推崇。无论您是否拥有Eclipse开发经验,本书都将使您获益匪浅。
第Ⅰ部分 使用 Eclipse \r\n 第1章 引言 \r\n 第2章 Eclipse入门\r\n 第3章 使用Java开发工具\r\n 第4章 Java程序的运行与调试\r\n 第5章 协同使用Eclipse \r\n 第6章 Eclipse环境管理\r\n第Ⅱ部分 扩展Eclipse基础\r\n 第7章 扩展Eclipse,亦利亦弊\r\n 第8章 Eclipse体系结构概述\r\n 第9章 插件开发入门\r\n 第10章 使用胖客户端平台创建\r\n 第11章 创建扩展点:其他人怎样扩展您的插件\r\n 第12章 插件开发的高级专题 \r\n 第13章 定义功能部件和产品\r\n第Ⅲ部分 扩展Eclipse Workbench\r\n 第14章 SWT:一个轻便但出色的小部件体系\r\n 第15章 JFace查看器\r\n 第16章 对话框和向导\r\n 第17章 对话框设置、首选项及用户设置\r\n 第18章 视图\r\n 第19章 编辑器\r\n 第20章 透视图\r\n 第21章 操作添加项:集成捷径\r\n 第22章 提供帮助\r\n第Ⅳ部分 扩展Eclipse IDE\r\n 第23章 工作空间资源编程\r\n 第24章 利用性质和构建器管理资源\r\n 第25章 使用标记对资源进行标识\r\n 第26章 使用JFace Text构建定制的文本编辑器\r\n 第27章 扩展Java开发工具\r\n第Ⅴ部分 可扩展性专题\r\n 第28章 可服务性\r\n 第29章 使用作业实现响应性和并发性\r\n 第30章 使用功能组管理丰富的功能\r\n 第31章 国际化和辅助功能\r\n 第32章 性能调整\r\n 第33章 Swing互操作性\r\n 第34章 OLE与Activex互操作性\r\n第Ⅵ部分 练习
Eclipse作为IBM开发的一个应用于Java的集成开发环境,越来越受到用户和各大企业的青睐。如今,Eclipse联盟已有91个会员,包含许多全球知名的大软件商。根据Evans Data公司的信息,Eclipse是目前最受欢迎的Java开发工具,吸引了绝大部分的Java供应商。Eclipse之所以这么受欢迎,除了它容易学习和使用之外,还具有以下特点:
● 它是一个开源平台,不会被某个特定的供应商锁定。
● 有许多种类的插件供使用。
● 可扩展。
● 可以跨平台运行及开发。
本书就是专门介绍Eclipse这个有着无限光明前景的平台的。本书是IBM Eclipse Jumpstart小组成员根据他们自己的授课经验编写而成,是一本极具权威性的Eclipse参考书。本书第1版曾经荣登amazon.com、Barnes & Nobel以及JavaOne 2003、2004年度Java畅销书排行榜。在此基础上,作者又进行了重新编排,并增加了新的内容,形成了现在的第2版。我们认为本书主要有以下优点:
● 内容丰富,不仅介绍了Eclipse所提供的基本功能,对于Eclipse的体系结构也进行了详细的阐述,便于用户理解和应用Eclipse的插件体系结构来开发自己的产品。
● 深入浅出,对Eclipse的核心内容——插件体系结构、框架等讲解得非常透彻,对于如何扩展Eclipse用户界面、开发自己的应用程序也讲解得非常透彻。
● 示例和练习简单易懂,对理解本书内容非常有帮助。
● 提供了内容导读,对于那些对Eclipse开发有特殊需要的读者,作者为其提供了阅读本书的方法。
通过深入研究本书,不但可以学会如何使用Eclipse平台,还能够自如地扩展Eclipse,从而开发自己的产品。
本书由束尧、丁凡、许国梁翻译,肖国尊负责本书的翻译质量,全书最后由束尧统稿。欢迎各位读者对本书提供反馈意见,我们希望读者能从本书中受益,也希望通过读者的反馈意见来了解自己的不足,以求在今后的译作中更多更切实际地考虑读者的需要。请将您的反馈信息发送至fwkbook@tup.tsinghua.edu.cn,我们将不胜感激。
译者
2006年6月21日
Jim D’Anjou 是IBM Silicon Valley Lab的一位资深软件工程师、IT专家,曾在加利福尼亚大学伯克利分校获得计算机科学学位,拥有25年的行业经验。在关系数据库、数据库工具、应用程序资源库和开发工具等产品的开发中,他担任过众多技术和管理职位。他拥有软件过程自动化方面的两项美国专利。在2001年的3月,Jim加入了Eclipse Jumpstart小组,担任讲师和行业顾问。
本书的起源
从1999年后期开始,本书作者在IBM里成立了一个小组,称为Eclipse Jumpstart小组。创建该小组的目的是为了共享会成为整个IBM中的Eclipse技术的知识,同时与它的商业伙伴共享这些知识。该小组所做的这些工作的一部分包括一套演示稿、演讲资料和相关练习。在随后的数月过后,随着Eclipse技术的成熟,相关的演示稿和练习也开始变得成熟起来。当Eclipse社区不断壮大,囊括了各种公司和学术机构时,对这些信息的需求也就开始相应增加。
第2版
2003年后期,我们发现大多数原先的作者依旧积极从事与Eclipse相关的工作。我们没有预料到并且极为欣慰地看到本书第1版获得了公众的肯定。对于第1版的公众和私人评价都是非常正面的。2004年7月,第1版收到了来自Java Developers Journal的一个编辑选择奖(Editors’ Choice Award)。作者们对我们的许多读者表达了他们诚挚的谢意和感激之情。在第1版出版后还不到6个月的时间,我们意识到Eclipse 3.0将会是极为特别的,并且具备将Eclipse带到一个新的高度这样的潜力。既然Eclipse 3.0已经不只限于IDE,它还可以适用于任何种类的客户端应用程序,那么Eclipse 3.0将会对更多的开发人员社区产生影响,进而潜在地影响到数百万的用户。作者们仍然对这一技术和该技术为创新工具和应用程序提供的机会而充满热情。我们决定提前计划创作第2版。第2版的目标是将本书升级到Eclipse 3.0,并基于读者的反馈加以改进,同时添加了许多精选的新主题。对于想随身携带图书的读者而言,这一版在重量上和体积上都接近极限。然而,我们希望本书能够继续很好地为您和Eclipse社区提供服务。
第2版中的新增内容
来自第1版的所有章节、练习和示例都根据Eclipse 3.0进行了更新。
● 增加了“本书阅读向导”部分。这个部分提供了一个计划,以帮助Eclipse新手从这本内容全面的书中获得尽可能多的Eclipse知识。
● 包含7章新内容和3个新练习,特别注重于新增的胖客户端支持。本书进行了重新组织,以便突出这个具有重要意义的新增功能。有专门的一章介绍胖客户端主题,同时包含两个相关的详细练习。其中一个练习示范了对于动态插件的新的Eclipse运行时支持。
● 对于将Eclipse用作其Java开发环境的读者,本书为他们提供了一个新的练习。在这个练习中,使用运行在Apache Tomcat服务器上的一个Java servlet应用程序来开发一个简单的Web商业站点。
● 针对扩展Eclipse提供了全新的介绍。增加了内容全面的一章,用于介绍JFace查看器,同时扩充了一章,用于介绍视图。关于并发性的一章将向您展示如何通过在后台处理工作来创建响应能力更强的用户界面。在阅读了有关Eclipse功能组的一章之后,您可以更好地管理胖的或复杂的用户界面。用来介绍插件性能调整的一章将有助于您避免常见的开发误区。在有关国际化和辅助功能的一章,新增内容有助于您开发可以扩大市场的产品。有关Java Swing互操作性的一章涵盖了Eclipse改进的Swing支持。
● 本书的结构进行了重新组织,从而反映出本书的知识量和Eclipse功能的广度。本书分为6个部分。第Ⅰ部分专门面向Eclipse用户,第Ⅱ~Ⅴ部分面向对Eclipse进行扩展的开发人员。第Ⅵ部分包含与使用和扩展Eclipse相关的详细练习。
● 本书配套光盘从便于访问和加载的角度进行了重新组织。光盘中包含了许多新的示例。所有的示例文档都已经打包到了它自己的帮助书籍中,可以安装这些书籍,使其与Eclipse联机帮助中的其他书籍排在一块。
书中最后的屏幕截图是基于Eclipse 3.0创建的。书中的图片与最终的Eclipse版本之间可能存在较小的差别。
本书目标
对于本书,我们有几个目标:
● 提供适合Eclipse新手的信息。
新用户可以将本书用作教程,而在以后当成一本参考书。我们不假定读者事先具备有关Eclipse的知识。
● 研究Eclipse的功能
本书涵盖了两方面的内容:一个方面是将Eclipse用作您的开发环境,另一个方面是扩展Eclipse。在第Ⅰ部分的章节中,首先介绍的是作为通用开发环境的Eclipse,然后进入Java程序的开发与调试,同时包括更为高级的使用方面的主题,例如在小组环境中使用Eclipse。在第Ⅱ~Ⅴ部分中有关扩展Eclipse的内容涵盖了Eclipse框架中最常用的类。根据情况,通过引用相关的设计模式来对类之间的体系结构关系进行了示范。提供这些内容的目的不是要取代Eclipse自带的Javadoc,而是将其作为Javadoc的一个补充,因为这些内容将重点放在如何将一套类集中到一起来完成特定的任务上。
● 提供简单且集中于每章主题的练习和可操作的示例。
练习和示例对某些章的主题进行了扩充,并举例说明了一些要点。各章的正文则集中于概念,同时概述完成某项任务的一些基本步骤,提供较小的代码段或屏幕截图来解释说明这些要点。练习则提供了详细的编码说明和屏幕截图来运用对应的章中描述的概念。本书的配套光盘包含了逐步深入的练习,同时包含了其他可操作的示例来作为本书中各章节的补充。
● 提供全面的Eclipse内容,对任何阅历层次的人都有用处。
涵盖了Eclipse的基本原理,从而提供了一个基础。从这里,您可以根据自己的需要和兴趣来自由选择许多其他的主题。
● 促进Eclipse社区。
本书提供了全面的Eclipse知识,学习之后,您可以成为一名活跃的参与者并帮助壮大Eclipse开源社区。
尽管术语“Eclipse”字面上是“日蚀或月蚀”的意思,但是本书的目的是要发光,增加清晰度,聚焦于功能强大的新平台。不管您是Eclipse新手,还是您很早就开始使用Eclipse,我们都欢迎您来到Eclipse社区。
本书面向的读者
本书的读者包括:计划将Eclipse用作其开发环境的Java程序员;将要使用基于Eclipse的插件的人;希望进一步定制Eclipse的高级用户、工具开发人员(试图开发要与Eclipse进行集成的工具);希望将Eclipse用作其客户端应用程序的框架的应用程序开发人员。本书并不要求读者预先具备Eclipse的经验;然而,本书假定您熟悉Java编程语言。虽然本书描述如何使用由Eclipse提供的Java开发工具(JDT),但本书并不讲述Java编程语言的语法和语义。
本书的组织结构
这本内容全面的书籍可以帮助您学习使用与扩展Eclipse。在您掌握了基础知识之后,可以将本书用作一本参考书。为了帮助您学习Eclipse,您应当首先阅读“本书阅读向导”部分。在这个部分中,将这本令人敬畏的书籍划分为便于管理的几个知识块,您可以按照最适合自己学习的顺序来阅读这些知识块。
本书分为6个部分。第Ⅰ部分“使用Eclipse”适用于将Eclipse用作其开发环境的人。本书首先介绍的是Eclipse的基本导航功能与基本术语。接着,您将学习Java开发环境,包括成为一个强大用户的秘诀。本部分还介绍了如何在小组编程环境中使用Eclipse。您将学习如何利用Eclipse的灵活性来最大化您的效率和适合自己的个人风格。学习Java编程语言的学生可能会发现:对于学习Java语言的丰富性和功能而言,使用Eclipse(而不仅仅是一个命令行环境)是一种更具效率和令人兴奋的方式。教师们可能会发现在课堂上使用Eclipse可以加速学生对Java语言的掌握,并且在他们的研究工作中,Eclipse成了他们的一个具有生产力的工具。
第Ⅱ部分“扩展Eclipse基础”将重点放在与扩展Eclipse有关的一些重要要素,这些内容独立于您扩展Eclipse来开发工具或创建一个客户端应用程序。这一部分涵盖了Eclipse的体系结构、怎样开发插件、使用胖客户端支持来创建客户端应用程序、怎样使您的插件可供他人扩展,还介绍了有关打包与部署方面的内容。
第Ⅲ部分“扩展Eclipse Workbench”涵盖了与扩展Eclipse功能相关的主题,这些主题是常见的而且是必要的。以Eclipse的体系结构作为基础,本部分涵盖了对于扩展Eclipse用户界面所需的框架。介绍了如何使用SWT(Standard Widget Toolkit,标准小部件工具箱)、对话框和向导、菜单、查看器、视图、编辑器、透视图和联机文档,来开发基本的GUI。
第Ⅳ部分“扩展Eclipse IDE”集中于在将Eclipse作为一个IDE来扩展时运用的那些服务。这一部分与第Ⅱ部分是相对的,涵盖了既适用于基于IDE又适用于基于非IDE的应用程序的服务。本部分包括诸如访问工作空间和扩展Java开发工具之类的主题。
第Ⅴ部分“可扩展性主题”通过包含各种主题来综合您的Eclipse知识。这些主题也许不是您马上需要的,或者是专门用于特定场合的。这一部分涵盖了关于可服务性、Swing互操作性、并发性、功能组、性能调整、OLE和Active X支持(Windows)和国际化方面的主题。
在不实际编写代码的情况下学习某个编程环境会有一定的难度。第Ⅵ部分“练习”包含了一系列详细的练习来强化书中介绍的概念。本部分依赖于配套光盘上包含的文件。配套光盘上包含所有练习的解决方案,同时包含用来对相关章节中的材料进行扩充的许多代码样本。这些练习彼此之间不存在依赖关系,因此您可以按任何顺序来完成这些练习。
本书许多章节中都
无封面