Eclipse是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想像力和创造空间。Eclipse自身包含大量的内置功能,加上功能丰富的插件,将构成一个丰富多彩的工作环境而不仅仅是一个IDE。本书内容由浅入深,先介绍了Eclipse平台体系结构、工作台、Java集成开发环境、Java程序调试;再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant;最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。
本书适合于Java程序员、自由软件爱好者及各类软件开发人员阅读。
第1章 Eclipse简介 1
1.1 什么是Eclipse 1
1.2 Eclipse项目 2
1.2.1 Eclipse平台 2
1.2.2 Java开发工具 3
1.2.3 插件开发环境 4
1.3 Eclipse工具项目 5
1.4 Eclipse技术项目 5
1.5 Eclipse的发展历程 5
1.6 如何获取Eclipse程序和代码 6
1.7 Eclipse软件开发工具箱的安装和运行 6
1.8 寻求帮助和报告错误 10
第2章 Eclipse平台体系结构 11
2.1 平台基本机制 11
2.2 平台运行时 13
2.3 工作空间(Workspace) 14
2.4 工作台(Workbench) 15
2.5 标准小窗口工具箱和图形用户界面框架 16
2.5.1 SWT 16
2.5.2 JFace 17
2.6 团队协同开发 18
2.7 帮助 19
2.8 外部工具 20
第3章 工作台 22
3.1 Eclipse工作台概述 22
3.1.1 透视图 23
3.1.2 视图 25
3.1.3 编辑器 26
3.2 Eclipse平台的菜单 29
3.3 Eclipse平台的工具栏 30
3.4 创建项目 31
3.4.1 使用文件菜单 32
3.4.2 使用上下文导航菜单 33
3.4.3 使用新建向导工具按钮 34
3.5 资源管理 34
3.5.1 资源管理概述 34
3.5.2 浏览和查找资源 35
3.5.3 创建文件和文件夹 38
3.5.4 导入导出资源 39
3.5.5 删除资源 41
3.5.6 复制、重命名和移动资源 42
3.5.7 资源比较 42
3.6 任务及任务视图 44
3.7 书签和书签视图 46
3.8 定制工作台 47
3.8.1 定制快速视图 47
3.8.2 定制工具栏 48
3.8.3 定制键绑定 49
3.8.4 更改字体和颜色 49
3.8.5 更改选项卡的放置 50
3.8.6 定制透视图 50
第4章 Eclipse的Java集成开发环境 53
4.1 验证JRE安装和类路径变量 53
4.2 在Eclipse中编写一个简单的Java程序 54
4.2.1 Java透视图 54
4.2.2 创建一个新的Java项目 55
4.2.3 创建一个新的Java包 55
4.2.4 创建一个新的Java类 56
4.2.5 代码编写和代码辅助功能 58
4.2.6 编译和运行程序 60
4.3 Eclipse的定制 62
4.3.1 首选项 63
4.3.2 定制JRE 64
4.3.3 格式化Java代码 66
4.4 其他的与Java编程紧密相关的透视图和视图 68
4.4.1 包资源管理器视图 68
4.4.2 层次结构视图 68
4.4.3 控制台视图 69
4.4.4 浏览透视图 70
4.4.5 Java类型层次结构透视图 71
第5章 Eclipse中的Java程序调试 72
5.1 概述 72
5.2 调试透视图简介 72
5.3 常规调试技术 73
5.3.1 断点 73
5.3.2 调试透视图 74
5.3.3 控制程序执行 76
5.3.4 检查程序的执行情况 78
5.4 高级调试技术 78
5.4.1 表达式的计算和显示 78
5.4.2 查看和修改变量和字段的值 79
5.4.3 条件断点 81
5.4.4 Java异常断点 81
5.4.5 监视点 82
5.4.6 方法断点 83
5.4.7 代码片段编辑测试窗页面 84
5.4.8 远程调试 86
5.5 热代码替换 87
第6章 JUnit 88
6.1 单元测试简介 88
6.1.1 单元测试概述 88
6.1.2 JUnit测试的作用 89
6.1.3 JUnit的获取和安装 89
6.1.4 Eclipse中JUnit的设置 90
6.2 JUnit测试案例 90
6.2.1 在Eclipse中创建测试案例 90
6.2.2 向测试案例中添加测试方法 92
6.2.3 运行测试案例 93
6.2.4 创建第二个测试案例 95
6.2.5 编写测试案例的考虑事项 96
6.3 测试套件 97
6.3.1 在Eclipse中创建JUnit测试套件 97
6.3.2 运行测试套件 98
6.4 测试案例和测试套件的调试执行方式 98
第7章 Eclipse配置管理 100
7.1 Eclipse的结构 100
7.1.1 Eclipse目录内容 100
7.1.2 功能部件的作用 100
7.1.3 标识运行时平台中的功能部件 101
7.2 安装/更新透视图和相关视图 101
7.2.1 安装配置视图 102
7.2.2 功能部件更新视图 103
7.2.3 预览视图 103
7.2.4 外部预览视图 104
7.3 更新管理 105
7.3.1 在Eclipse中安装插件 105
7.3.2 在Eclipse中更新插件 106
7.3.3 使用组更新一次安装几个功能部件 107
7.4 Eclipse中的插件配置管理 108
7.4.1 检查Eclipse平台的当前配置 108
7.4.2 保存Eclipse平台的当前配置 110
7.4.3 恢复已保存的配置 111
7.4.4 选取正在挂起的更改 111
第8章 Eclipse开发环境中的应用服务器Tomcat 112
8.1 Tomcat简介 112
8.2 Tomcat的安装 113
8.2.1 Tomcat的获取 113
8.2.2 Tomcat的安装和配置 113
8.2.3 Tomcat的安装测试 116
8.3 Sysdeo Tomcat插件的安装和配置 117
8.4 服务器配置文件server.xml 122
第9章 Eclipse下的Web应用开发 125
9.1 Servlet 125
9.1.1 Servlet简介 125
9.1.2 Servlet的处理流程 126
9.1.3 Java Servlet API 127
9.1.4 Servlet生命周期 127
9.1.5 一个简单的Servlet程序的示例 129
9.1.6 Eclipse中的Servlet应用程序的开发 130
9.2 JSP 131
9.2.1 JSP简介 131
9.2.2 JSP的实现和运行方式 132
9.2.3 JSP的访问模型 133
9.2.4 JSP文档结构和语法概述 135
9.2.5 Eclipse中的JSP的创建 138
9.3 Web应用程序的打包和部署 140
9.3.1 部署描述符文件web.xml 140
9.3.2 Web应用的部署 142
9.4 使用Lomboz插件开发J2EE应用程序 143
9.4.1 Lomboz的获取 143
9.4.2 Lomboz的安装 144
9.4.3 Lomboz在Eclipse中的配置 144
9.4.4 Lomboz的JSP应用程序开发示例 145
9.4.5 Lomboz的Servlet应用程序开发示例 149
9.4.6 Lomboz中的程序调试 152
第10章 Eclipse插件开发技术 155
10.1 Eclipse插件开发简介 155
10.1.1 Eclipse的插件结构 155
10.1.2 开发Eclipse插件的基本步骤 156
10.1.3 定义扩展点 157
10.2 使用JDT开发Eclipse插件的示例 158
10.3 使用PDE开发插件 162
10.3.1 PDE简介 162
10.3.2 PDE的配置 162
10.3.3 “插件开发”透视图和相关视图 163
10.3.4 使用PDE开发插件的简单示例 164
10.3.5 插件清单编辑器 167
第11章 Eclipse的图形用户界面的构建 171
11.1 SWT简介 171
11.2 SWT API的结构 172
11.3 小窗口 173
11.3.1 小窗口应用程序的结构 173
11.3.2 小窗口应用程序的系统资源管理 174
11.3.3 控件 175
11.3.4 定制小窗口 178
11.4 SWT的布局 181
11.4.1 FillLayout 181
11.4.2 RowLayout 181
11.4.3 GridLayout 182
11.4.4 FormLayout 183
11.5 SWT的事件和线程 185
11.5.1 事件 185
11.5.2 线程 186
11.6 开发SWT程序的示例 189
11.7 JFace简介 193
11.8 JFace的体系结构 194
11.9 查看器 195
11.10 JFace操作和添加项 196
11.11 在Eclipse中创建JFace应用程序 197
第12章 Eclipse下的Struts应用开发 200
12.1 Struts简介 200
12.1.1 Struts概述 200
12.1.2 Struts的获取和安装 201
12.1.3 Struts的配置 201
12.2 Struts框架概述 202
12.2.1 MVC模式 203
12.2.2 J2EE中MVC模式的实现 204
12.2.3 Struts框架 205
12.2.4 基于Struts框架的开发流程 208
12.3 视图及其构建 208
12.3.1 视图简介 208
12.3.2 在Struts中构建视图 209
12.4 控制器及其构建 209
12.4.1 控制器简介 209
12.4.2 在Struts中构建控制器 210
12.5 模型及其构建 211
12.6 Struts应用的配置 212
12.6.1 国际化Struts应用程序 212
12.6.2 web.xml文件 213
12.6.3 struts-config.xml文件 214
12.7 Eclipse中开发Struts应用的简单示例 215
12.7.1 创建Struts项目 215
12.7.2 使用“Easy Action Associated With a Form”向导 219
12.7.3 修改ActionForm类 223
12.7.4 修改Action类 226
12.7.5 修改JSP文件 227
第13章 Eclipse的版本控制及CVS 229
13.1 Eclipse的本地版本控制 229
13.1.1 比较操作 229
13.1.2 本地历史记录 231
13.2 CVS概述 232
13.3 CVS的基本原理 233
13.4 安装和配置CVS资源库 234
13.4.1 安装cvsnt 234
13.4.2 创建CVS资源库 235
13.5 Eclipse中实施CVS系统 236
13.5.1 向资源库提交项目 237
13.5.2 标记资源版本 241
13.5.3 从CVS资源库检出项目和模块 242
13.5.4 更新 243
13.5.5 补丁程序的创建和应用 244
第14章 Eclipse中的资源构建和构建工具Ant 247
14.1 Ant简介 247
14.1.1 Ant概述 247
14.1.2 Ant的获取和安装 247
14.1.3 Ant的配置 248
14.2 构建文件 248
14.2.1 <project> 250
14.2.2 <target> 250
14.2.3 <mkdir> 251
14.2.4 <jar> 251
14.2.5 <javac> 251
14.2.6 <java> 252
14.2.7 <delete> 252
14.2.8 <echo> 253
14.2.9 <property> 253
14.2.10 <buildnumber> 253
14.2.11 <copy> 253
14.3 Ant数据类型 254
14.3.1 argument 254
14.3.2 environment 254
14.3.3 filelist 255
14.3.4 patternset 255
14.3.5 fileset 255
14.3.6 filterset 256
14.3.7 path 256
14.3.8 mapper 256
14.4 Ant的运行 256
14.5 Eclipse和Ant的集成 257
14.5.1 创建Ant构建文件 257
14.5.2 编辑Ant构建文件 258
14.5.3 运行Ant构建文件 258
14.5.4 保存和重用Ant选项 259
14.5.5 Eclipse中的Ant视图 260
14.5.6 修改Ant类路径 261
14.5.7 使用其他版本的Ant 262
14.6 在Eclipse中使用Ant的示例 263
第15章 Eclipse环境下的MySQL等数据库应用开发 265
15.1 MySQL简介 265
15.1.1 MySQL的获取和安装 265
15.1.2 MySQL的配置 265
15.2 数据库连接 266
15.2.1 JDBC对象 266
15.2.2 JDBC驱动程序的类型 267
15.2.3 JDBC的使用 268
15.2.4 MySQL数据连接池 270
15.2.5 一个简单的数据库查询的例子 272
附录A 开放源代码软件 273
附录B 自由软件 278
附录C 通用公共许可证 280
附录D 通用公共许可证的法律要点和热点问题的阐释 285
参考文献 290
开放源代码是目前软件发展的趋势之一。开放源代码运动已经获得了越来越多的关注,并取得了很大的成功,如Linux、Apache等。开放源代码项目的发展趋势正由操作系统逐步转向开发工具和中间件。
目前Eclipse项目已经发展成为了一个庞大的Eclipse联盟。Eclipse.org是软件开发工具商为加快和繁荣Eclipse软件开发而组织的联盟。Eclipse开放源代码社区的目标是为了创建更好的软件开发环境以及提供集成平台,共享创建易于互操作的Eclipse产品利益。通过合作和共享核心集成技术,基于Eclipse平台上的软件开发商可致力于他们的专业领域及创建新的技术。目前已有150多家软件公司参加到Eclipse项目中,如IBM、Borland、Red Hat、Oracle、Sybase等。
Eclipse平台是一个开放的、可扩展的集成开发环境(IDE),它可用于创建、集成和部署各类开发工具。Eclipse平台包含了大量的内置功能,Eclipse平台不仅为集成软件开发工具的开发、构造和运行提供基础模块,还提供了一整套的公共服务集,并建立了项目开发人员构建应用软件和相关组件所需的框架、基础结构和交互式工作台。
Eclipse平台的诱人之处在于它有大量的工具开发者创建性能、功能出色的集成工具集。并且用户可以很方便地灵活使用这些工具满足其特定需求。通过Eclipse项目,开发和维护Eclipse平台及相关工具,以满足软件工具开发者及其用户的需求,从而实现Eclipse作为工具平台的目标。
Eclipse软件可以集成不同的软件开发工具供应商的产品,任何开发工具厂商都可以将他们的开发工具或组件加入到Eclipse平台中,用户可以通过相同的接口使用不同的工具,即可在同一集成环境中同时使用不同开发商开发的软件工具。这使开发者可以在一个集成环境下使用来自多个厂商的不同工具,能够使开发人员在整个开发过程中都能进行建模、构建、测试和调试工作,软件开发者可以在Eclipse中选择不同的开发工具,并进行整合,从而降低开发成本,提高开发效率。开发者还可以避免因使用不兼容的工具所带来的烦琐任务,并保证了相关产品的一致性。
作者从Eclipse开放源代码项目建立之初即关注此项技术和相关信息,深深地被她所吸引,并在最近几年一直从事Eclipse技术的学习、研究、应用和推广。在推动Eclipse普及和应用的过程中,作者感到目前Eclipse社区呈蓬勃发展之势,广大Eclipse技术爱好者迫切希望能有一些系统、全面的Eclipse技术资料,尤其是中文资料。
在众多的Eclipse技术爱好者的鼓励之下,作者一年前即着手本书的编写。在编写过程中,Eclipse及其相关开发技术也在不断的发展、进步之中。本书试图跟踪最新的Eclipse技术发展动态。
在本书编撰过程中,作者努力融合各类相关的Eclipse中英文材料,如Eclipse的联机文档、Eclipse技术专家和爱好者的研究论文、因特网和讨论组中的各类信息,在此编者就不一一致谢,详细信息参见参考文献。此外,本书还包括作者的研究和开发经验,以及作者与广大的Eclipse技术爱好者的讨论心得等,并加以整理,其间数易其稿。然而,由于Eclipse是一个迅速发展的技术领域,并不断有新技术、新概念、新产品等涌现,加之作者的水平和能力所限,书中的不当之处在所难免,敬请专家和读者朋友指正。
您的任何建议和批评都是我们极为宝贵的财富。如果您能将意见和建议发往ytzhang@mail.sjtu.edu.cn、yuntao_zhang@hotmail.com或lgong@mail.sjtu.edu.cn,我们将不胜感激。作者将努力和广大的Eclipse技术爱好者一起分享您的真知灼见,并在新版本中改进不足之处。
让我们携起手来一起推动Eclipse社区的发展吧!
张云涛 龚玲
2004年12月于上海交通大学