admin 管理员组

文章数量: 887042


2023年12月19日发(作者:getversionex)

第 3 章 集成开发工具 Eclipse Eclipse是当今世界上最新、最实用的 IDE(Integrated Development Environment,集成

开发环境)工具,已成为Java/JSP 第一开发工具。

通过本单元的教学和实训,读者应掌握如下内容:

¨ Java 和JSP 开发工具的选择

¨ Eclipse及其常用插件的安装(Eclipse 3.4.2 + MyEclipse7.5 3.5.2+ 8.5)

¨ Eclipse及其常用插件的基本配置

¨ 应用 Eclipse开发 Java 和 Web 应用程序

¨ Eclipse与单元测试JUnit

¨ Build工具 Ant 的基本应用 3.1 Java和 JSP 开发工具概述

在完成JDK 和 Tomcat 的正常安装和配置之后,Servlet/JSP 的基本运行条件就完全具备

了,接下来就应该考虑使用什么样的工具来开发 JSP 页面、Java 文件和 Web 应用系统。本

节将简要介绍Java 和JSP 开发工具,并给出本书和作者的选择策略。 3.1.1 Java 开发工具概述 JSP 是基于Java 的动态网页技术。开发JSP 站点,不仅要开发各种 HTML和 JSP 页面,

还要编写 Servlet、JavaBean等各种Java 文件。

记事本、UltraEdit 等字处理软件,不仅可以编辑各种网页,也可以作为Java 开发工具。

对于静态HTML页面或动态JSP页面,Dreamweaver 的确是一个不错的选择。 但是对于MVC (Model­View­Controller)的 Web 架构,Dreamweaver 最多只是让网页设计师得心应手可视

化地编写JSP 页面(MVC 中的 View部分)。即使对于简单的JSP 页面,这些编辑软件往往

也不能做任何 Debug的工作。对于软件工程师,如果进行(企业级)项目开发,IDE(集成

开发环境)工具是一个更好的选择,这可以明显地提高开发效率。

目前有许多Java 开发工具,免费的有 SunNetBeans、Eclipse等。Eclipse可谓当前世界

上最新最实用的 IDE 环境。本章稍后将用近一章的篇幅简要介绍Eclipse的安装、配置和基

本应用,而且整个篇幅稍显臃肿一些。

另外, 比较知名的Java 开发工具还有 JBuilder、Oracle JDeveloper 、Sun Java Studio 、IBM WebSphere Studio、BEA WebLogicWorkShop、IntelliJ IDEA 等 IDE 工具, 以及JCreator、jEdit 、 JPad、JRun等轻量级的开发工具。

此外,还有一些专门针对JSP 的开发工具,如免费的BEA Workshopfor JSP。实际上,

这是 Eclipse的一个 JSPIDE 版本,您可以从 /下载

获取。 3.1.2 JCreator 简介 JCreator 是Xinox 软件公司推出的一款轻型Java 开发工具, 最显著的优点就在于运行效

率高、速度快,并且占用资源少,对系统要求远低于JBuilder 和 Eclipse等 Java IDE 工具。·1·

JCreator 分为 LE(Lite Edition)和 Pro版本。LE 版本功能上受到一些限制,是免费版本; Pro版本功能最全, 但这个版本是一个共享软件。 这个软件非常小巧 (V4.5的Pro版只有5.6M 多一点,LE 版不足 4M),对硬件要求不是很高,具有语法着色、代码自动完成、代码参数

提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK 主目录及JDK JavaDoc 目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。 JCreator 可以从 /下载得到,其运行界面如图 3.1 所示。

图3.1 JCreator运行界面

使用 JCreator 主要是考虑到在进行 JSP 开发时需要用到一些 Java class 文件(例如 JavaBean、Servlet、实用的 Java 类等),这些Java 文件使用JCreator 来进行编写、编译、调

试等都很方便。但是 JCreator 对 JSP 这种 Web 动态网页却支持不够,它甚至无法直接创建 JSP 文件(只是创建一个空白文档) 。 3.1.3 本书选择策略

对于 IDE 工具,业内有一个说法:IDE 工具会加快高手的开发效率,但会使初学者更

白痴。例如,Eclipse+MyEclipse 把好多东西都自动生成而无须手写了,但这样也就隐瞒了

诸多细节。笔者建议:可以使用 IDE 工具,但决不能依赖于 IDE 工具。学习阶段,暂且不

用 IDE 工具;开发阶段,才去使用 IDE 工具。鉴于此,本书采用如下选择策略。

(1)各章例程建议您使用 UltraEdit 或 Dreamweaver 开发.jsp、html 等各类页面文件,

使用 UltraEdit 或 JCreator 编写Java 文件,并采用手动/命令行方式编译和部署它们。

(2)本书的综合实例( “易物网”项目)及各章的项目实战将引导您如何应用 Eclipse 熟练开发Java Web 项目。 3.2 Eclipse及其常用插件的安装

“工欲善其事,必先利其器” 。Eclipse 是一种非常高效的 Java 集成开发环境(IDE)。

尽管 Eclipse本身非常健壮, 但是真正使Eclipse成为一种强大的 IDE 的原因在于它的插件机

制。本节着重介绍 Eclipse及其常用插件的安装,接下来的两节将简要介绍Eclipse及其插件·2·

MyEclipse的配置和基本应用。 3.2.1 Eclipse 的获取和安装

下面首先简要介绍一下 Eclipse及其发展,再介绍 Eclipse的获取和安装。 1. Eclipse风潮 2001 年 11 月,IBM 将价值 4000万美元的Eclipse源码捐给开源社区,与其他 8 家业界

巨头共同建立了 Eclipse 协会和 网站;2003 年底,协会超过了 80 个会员;2004 年 1 月,独立于 IBM 的 Eclipse基金会正式成立。Eclipse基金会是一个非营利性组织,它致

力于 Eclipse 平台的创建、发展和提高,建立开源社区,培养能够创造补充性产品和服务的

良好环境。

目前,Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟。Eclipse 的会员资格分为 AssociateMember、Solutions Members、Enterprise Members、StrategicMembers 和 Committer Members 等 5 类,其中,前 4 类针对团体,后 1 类针对个人。截至作者写作本书时,已有 163 家公司和组织加盟 Eclipse项目,其中,战略成员(StrategicMembers)已发展到 14 家。 2003 年 4 月7 日,Eclipse推出了 2.1 版;2005 年 6月 27 日,推出了3.1 版;2006年 9 月 21 日,推出了3.2.1 版本及对应的语言包(3.2版代号:Callisto) ;2007年 6 月 29日,推

出了 3.3 版(Europa),2008 年 2 月 21 日,推出了 3.3.2 版本;2008 年 6 月 17 日,发布了 3.4 版(Ganymede) ;2009 年 2 月 11 日,发布了 3.4.2 版;2009 年 6 月 11 日,发布了 3.5 版(Galileo) ,9 月 17 日,发布了 3.5..1 版本,这是作者写作本书时的最新版本。

短短几年,Eclipse 已从一个应用开发工具,发展到全球广泛使用的构建部署软件的通

用集成平台;同时,也有众多软件产品基于Eclipse构建,如 IBMWebSphere Portal 6.0、IBM Lotus Notes 8。值得一提的是,JBuilder 2007 也开始以Eclipse作为集成框架基础而重新设计

和构建。 2. Eclipse的获取、安装和运行 Eclipse 的版本更新比较快,而相应插件的更新总要滞后一些时间。因而,使用 Eclipse 并非版本越新越好。此外,本书并不是一本专注于 Eclipse 及其最新功能的教程,因而本书

选择的是 Eclipse 3.4.2 版本,但将适当介绍Eclipse 3.5 的一些不同之处和新增功能,并兼顾 Eclipse 3.4.2 之前版本的一些基本用法。

可以从 /eclipse/downloads/drops/R­3.4.2­2/下载 Eclipse 3.4.2;如果要获取最新版本,请访问 /downloads/packages/,根

据您的使用需求,选择适合的预打包的Eclipse版本。 Eclipse的安装很简单,直接解压上述下载的压缩文件即可。例如,解压到 D 盘根目录: D:(请读者注意观察 D:eclipse 的目录结构!)。双击 Eclipse 目录下 ,即可启动 Eclipse。

小贴士 Eclipse启动的时候, 系统会自动寻找JVM, 这就必须首先正确安装JDK。 3.2.2 Eclipse 插件的安装方法 Eclipse 最有魅力的地方就是它的插件体系结构,由于有了插件,Eclipse 系统的核心部

分在启动的时候要完成的工作十分简单:启动平台的基础部分和查找系统的插件。 Eclipse 的核心是动态发现、懒惰装入(Lazy)与运行的,平台用户界面提供标准的用·3·

户导航模型。于是每个插件可以专注于执行少量的任务,例如定义、测试、制作动画、发布、

编译、调试和图解等,只要用户能想象得到的就会应有尽有。 1. Eclipse的核心目录:plugins 和 features 在开始本小结主题之前, 首先观察一下eclipse的安装目录, 图3.2~3.5分别显示了Eclipse 3.4.2、Eclipse7.5(exe安装、manual 安装)和 Eclipse3.3.2 及其插件的安装目录结构。

图3.2 Eclipse 3.4.2安装目录

图3.3 MyEclipse 7.5安装目录(exe安装)

图3.4 MyEclipse 7.5安装目录(manual安装) 图3.5 Eclipse 3.3.2安装目录

小贴士

本书选择的是手动解压缩安装的 MyEclipse7.5,目录结构如图 3.4 所示。 Eclipse 安装目录中有两个核心目录:plugins 和 features,这两个目录占了整个 Eclipse 项目的 9x%接近 100%的空间。什么是 plugins,什么是 features 呢?

做一个比喻来说:假设买了一套新房子,不过是毛坯房,那就至少稍微装修一下,铺地

板,饰墙面,包门窗,……唉,别忘了,要充分布好电线,装好电源插座,现代社会,哪能

没有家用电器呢?这个时候,可以把这个房子想象成 Eclipse 这个平台。之后,或许就要添

置家电了,比如电视、音响、PC。等买回家,然后把电源往插座上一插,那就可以看电视、

听音乐、玩传奇,舒舒服服地过小康生活……

同样的,Eclipse 的 plug­in也是同样的工作原理,plug­in 只要放到/plugins目录下,Eclipse 启动后就会自动给这个目录下的所有 plug­in通上电,这些 plug­in就会自动的运行起来,美

妙的 Eclipse界面也随之呈现在眼前了。·4·

而 feature呢?feature是功能部件,它里面没有实际的运行的库,只是 Eclipse用来管理 plugins 的一种途径。比如家里装了电灯,总要有开关控制吧,比如大堂的灯有一个开关控

制,卧室的灯也有一个开关控制,它们分别用来控制灯的亮与灭。同样,功能部件就是用来

控制插件的启动与否。 Eclipse 的 update 透视图可以设定各个功能部件的启用或禁用状态,所以可以通过禁用

功能部件,来禁止插件的启动。这样有一个好处,比如装了很多插件在 Eclipse 上,但是装

的越多,加载就越多,启动也会变慢。

所以,我们可以把功能部件看作是插件或插件集合的开关,用来控制插件的状态。如果 plugins 目录有插件没有被任何一个功能部件包络的话,我们可以称之为“野插件” ,就是 Eclipse 启动,它也一定会启动,就相当于没有开关,电源一直连通一样。当然,功能部件

还有很多其他方面的用处。 2. Eclipse插件的传统安装方法 Eclipse 插件的传统安装方法包括:拷贝安装、link 安装和 Update 安装等几种。其中,

前两种属于手动方式, 图 3.5 中的 links 和 myPlugins 两个子目录是为了 link安装插件而自行

建立的;后一种属于自动更新方式,就是使用 Eclipse 自带的“安装/更新”功能来升级,这

有些类似于Windows 操作系统的更新方式。

注意

选择插件包时务必注意与 Eclipse 的版本一致(有时完全可以向 Eclipse

的高版本兼容) 。 3. Eclipse 3.4(Ganymede)新增的插件安装方式

从 Eclipse 3.4 起,Eclipse 又推出了一种新的机制,使插件安装的形式更为灵活,称为 provisioning platform(p2) 。p2 取代旧更新管理器成为管理 Eclipse安装、搜索更新和安装新

功能的机制,p2 可以解决人们在更新和搜索插件时遇到的许多问题。

细心的读者,可能早已注意到Eclipse 3.4.2 安装目录中的 dropins 和 p2 子目录(参阅图 3.2)了。这是 Eclipse 适应 plug­in 的不断暴增而采用的一种特殊策略:增加一个子目录 dropins,用来存放用户新增加的 plug­in,可以这样简单理解,它相当于将原来我们自建的 links 目录和 myPlugins 目录合二为一;而原有的 plugins 目录,则基本用于系统基本功能,

二者的区别就是,前者可以任意添加删除,后者则基本上是一个 ReadOnly 的状态。而 p2 目录里则记录了一些初始化信息。

对于 Tomcat 启动插件、XMLBuddy 和 ResourceBundle Editor 等插件,在 Eclipse 3.3.2 或稍低版本中无法使用 link方式安装,而对于 Eclipse 3.4,直接丢进 dropins 目录即可。

关于 p2,有兴趣的读者可以参阅 /Equinox_p2_Getting_Started 获取

更多信息,这里权作抛砖引玉,不再赘述。

若要及时更新 Eclipse 及其插件,类似于 Windows 的自动更新功能,可以在 Eclipse 的

“首选项” (Preferences)中配置自动更新选项,如图 3.6 所示。·5·

图3.6 “自动更新”首选项

小贴士

关于 Eclipse“首选项”对话框,本章稍后您将反复看到它的靓影。 4. 插件没能正常加载的解决方法

插件安装之后,再启动 Eclipse,有时没能正常加载插件。对这类问题,最常用的办法

就是在启动Eclipse时带上­clean参数,强制 Eclipse 启动时寻找并安装插件。如:单击〖开

始〗à〖运行〗 ,执行D:–clean。 3.2.3 Eclipse 的常用插件简介

下面简要介绍几个 Eclipse 的常用插件。其中,XMLBuddy、ResourceBundle Editor、 Findbugs 以及 Tomcat 启动插件都是一些小巧而实用的插件,请读者特别留意。 1. Tomcat 启动插件

如果选择 Tomcat 作为 JSP 容器和Web 服务器, 而又要在 Eclipse中调试 JSP 和 Servlet,

那么 Tomcat 插件就是必不可少的。EclipseTotale的 tomcatPlugin是这类插件中的佼佼者,可

以到这个地址下载:/。下载之前需要查看插件

是否适合 eclipse的版本,本书下载的是 。 Tomcat 插件的安装很简单 , 解压 , 把其中的 _3.2.1 文件夹直接复制到%eclipse%plugins,或者直接丢进 %eclipse3.4%dropins 即可。

小贴士

特别注意:不是将 _3.2.1 文件夹中的对象复制到 %eclipse%plugins 目录中。 2. WTP(WebTools Platform)插件

我们选择 Eclipse 的主要目的,就是做 Web 开发。因而,通常需要 WTP(WebTools Platform)插件或 lomboz 插件。而要使用WTP 插件,除了 Eclipse SDK 之外,还需要首先

安装 emf、gef等一大堆插件。当然,选择 All­in­one 包是一个简便的方法。 WTP 插件可以从如下地址下载:/webtools/downloads/。·6·

3. UML2 插件 UML2 也是一个基于 EMF 的开源的 Eclipse 工具项目,该项目提供了一套 UML 2.0 通

用模型的实现。要获取更多信息,请访问 /modeling/mdt/?project=uml2。 4. MyEclipse插件——Eclipse插件的集大成者 MyEclipse可谓最强悍的 J2EE 开发插件:可视化的 JSF 和 Struts 开发、XML编辑器、 Hibernate 支持、Spring支持、UML建模、应用服务器连接、支持 EJB 开发、同步发布JSP (不必发布整个应用程序)等等,功能非常强大,堪称 Eclipse 插件的集大成者。但它不是

免费的(可免费试用30 天) 。本节稍后将详细介绍 MyEclipse的安装和配置。 5. 编辑 xml 文件的插件 XMLBuddy XML可是 Web 2.0 和 Ajax 的重要角色。XMLBuddy 插件提供了有关 DTD 方面的验证、

代码助手等功能; 而增强版 XMLBuddy Pro, 扩展了许多功能, 比如对 Schema、XSLT 、RELAX NG 的支持,但它需要 Money。可以从 /获取这个插件。 6. 编辑 Properties 资源文件的插件 ResourceBundle Editor ResourceBundle Editor 是一个经典的多语言文件编辑的插件。该插件用来编辑本地化的

属性文件(localized properties files) ,当用户访问时,会自动匹配用户机器上的当前语言和

国家设置,非常方便的实现中文化和国际化。

可以从 /project/?group_id=125041 下载它。 7. Findbugs 插件 FindBugs 是个专门用来发现Java 代码中的 Bug的 Eclipse小插件, 与 Eclipse无缝结合,

可以实现敲入代码、 保存文件、 编译时即时反馈给用户 Bug信息, 比 Eclipse自带的 Java Bug 管理功能要强。除 Eclipse插件版本外,FindBugs 还提供了一个独立的标准版本。

可以访问 /获取更多信息并下载 Findbugs 插件。 3.2.4 Case:安装 Eclipse 和 MyEclipse MyEclipse,堪称 Eclipse 插件的集大成者。安装了 MyEclipse,几乎不再需要安装其他

插件了,即使是做专业的Java Web 开发。MyEclipse 有手动安装包,也有.exe形式的安装版

本,对于 MyEclipse 7.5 版本,均包含所支持的对应 Eclipse版本,且安装版还同时安装一个 jre(32.x86_1.6.0.013,即JDK 1.6 Update 13) 。下面以 MyEclipse 7.5 为

例,说明其安装过程。 1. MyEclipse7.5 的获取

可以从 /module­htmlpages­display­pid­ 开始来下载这

个软件,选择“Accept License Agreement”复选框,单击 MyEclipse7.5 for Eclipse 3.4.2 按钮

(如图 3.7 所示) 。在打开的新页面中,根据操作系统,单击一个“ALL in ONE”图像超链

接,即可下载获得 myeclipse­7.5.0­ 文件;或者单击“Manual Install”按钮,可以

下载手动安装文件 myeclipse­7.5.0­manual­。·7·

图3.7 MyEclipse7.5的下载界面 2. 安装 MyEclipse7.5 对于 MyEclipse的手动安装包,只需将其解压缩即可,结果如图 3.所示。

对于.exe形式的“ALL in ONE”安装包,只需双击安装文件,按照“安装向导”的提

示,顺序安装即可。需要注意的是,在“选择安装目录”窗口,建议您选择不带空格的短路

径,如 E:GenuitecCommon 和 E:GenuitecMyEclipse7.5。 3. 初次运行MyEclipse 在 MyEclipse 的安装目录中,双击 (manual 版)或 (exe 安装

版)即可启动 MyEclipse,由于是初次启动,需要先选择或指定一个工作空间(Workspace,

也称为工作区;如图 3.8 所示) 。另外,与单纯的Eclipse的 splash画面(启动闪屏)不同的

是,这里看到的 MyEclipse7.5。

图3.8 设置工作空间

小贴士

请读者再次仔细观察研究上述MyEclipse 的安装目录。顺便说明:

(1)MyEclipse7.5 的手动安装包是将 MyEclipse融入 Eclipse之中的;.exe形式的安装

结果,是将 MyEclipse通过 link方式作为 Eclipse插件安装的。

(2)需要注意的是:指定 Eclipse 的工作空间(Workspace)之后,不要随意更改。建

议启动 Eclipse时在“Workspace Launcher” (工作空间启动程序)对话框中选择“Use this as the default and not ask again” (将此值用作缺省值并且不再询问)复选框,如图 3.8所示。·8·

3.2.5 Case:Eclipse 的汉化

对于英文不好的人或者初学者来说,中文版本的 eclipse 可以显著提高学习效率,便于

接受和使用 Eclipse。但是,毕竟当前先进的技术是英文一统天下,所以,笔者强烈建议读

者多使用英文版的 Eclipse,即便是在初学阶段。这样,对以后的进一步学习和使用是大有

好处的。不过,为了降低读者的学习曲线,本书选择Eclipse 3.4.2 中文版为学习背景。

语言包属于Eclipse的插件, 截止到 Eclipse 3.2.1, 提供了单独的多国语言包,

德语、法语、日本语、繁体中文和简体中文等二十几种语言包拆分成 4 个压缩包提供下载,

中文包包含在 NLpack1 压缩包中,可以通过 link方式或“拷贝法”手动安装以达到“汉化”

目的。从 Eclipse 3.3(Europa)开始,相关语言包交由 babel(宝贝)项目代替,通过 Update 方式自主选择安装相应的语言包插件。在笔者写作本书时,babel 项目已经支持多达34 种语

言, 这样最大的好处在于减少了冗余。 对于 Eclipse 3.5.x (Galileo) 、Eclipse 3.4.x (Ganymede)

和 Eclipse 3.3.x(Europa) ,可以分别通过如下 URL来在线更新以实现汉化: Eclipse 3.5.x:/technology/babel/update­site/galileo/ Eclipse 3.4.x:/technology/babel/update­site/ganymede/ Eclipse 3.3.x:/technology/babel/update­site/europa/ 同时,Eclipse 也提供了分项目的压缩包式的语言包插件,Eclipse 3.5.x (Galileo)、Eclipse 3.4.x(Ganymede)和 Eclipse 3.3.x(Europa)版本对应的语言包下载地址分别如下: /technology/babel/babel_language_packs/ /technology/babel/babel_language_packs/ /technology/babel/babel_language_packs/ 小贴士

可以访问 /babel/获取更多信息。 1. 安装 Eclipse中文包插件

下面以 Eclipse 3.4.2 和 MyEclipse7.5 为例说明中文包插件的获取和安装。

依次单击各链接,下载 Eclipse3.4.x 的中文语言包插件,如图 3.9所示。

图3.9 Eclipse 3.4.x中文语言包插件的下载页面·9·

在 dropins 目录中新建目录 language,将上一步下载的各.zip文件复制到该目录中,

依次将各.zip文件“解压到当前文件夹” ,如图3.10所示。

解压结果图3.10 将各.zip格式的中文包插件“解压到当前文件夹”

小贴士 Babel 项目是持续推进的,中文包也会不断更新,可以重复上述步骤安装

最新的汉化包(更新后删除原来的即可) 。如果您有能力,而且有乐于奉献基和分享的爱心, Babel 项目组期待您的加入。

上述汉化仅仅是对 Eclipse 的汉化。关于 Eclipse 各版本语言包的安装方法,请参阅 /Babel_/_Installing_Language_Packs。 2. 打造 Eclipse中英文双系统

安装了语言包之后,可以使用“­nl locale”参数将 Eclipse 打造成多个语言版本,如在

桌面建立两个快捷图标,然后右击à属性à目标: 后添加参数,一个添加“ ­nl zh_CN” ,另一个加上“ ­nl en_US” ,这样一套软件就可以同时有中、英文两个语言版本了。

小贴士

配置文件 中记录的是 Eclipse的启动参数。关于 Eclipse启动参

数更详细的信息,请自行参阅相关资料。 3.2.6 Eclipse 项目及其平台架构

现在,先来看看 Eclipse项目,再共同领略一下 Eclipse平台的体系结构。 1. Eclipse项目 Eclipse 生态环境是一个大型社区并且有时令人生畏。在笔者写作本书时,Eclipse中正

在开发的项目超过 90个,而各个发行版只是一个缩影,Eclipse Callisto(3.2 版)发行了 10 个项目,而Eclipse Europa(3.3 版)的发行推出了 21 个项目,Eclipse Ganymede(3.4 版)

·10·

则同步发行了 24 个主要的 Eclipse 项目(如表 3.1 所示) ,Eclipse Galileo(3.5 版)包括 33 个项目。各发行版旨在展示 Eclipse技术,还帮助采用者把 Eclipse技术集成到他们的产品之

中。

表3.1 Ganymede 发行系列项目(按照字母排序)

序号

1 2 3 4 5 项目

Business Intelligence and Reporting Tools (BIRT) Buckminster C/C++ Development Tools (CDT) Dynamic Languages Toolkit (DLTK) Device Software Development Platform—Device Debugging (DSDP­DD) 6 Device Software Development Platform—Native Application Builder (DSDP­NAB) 7 Device Software Development Platform—Target Management (DSDP­TM) 8 9 10 Eclipse Data Tools Platform (DTP) Eclipse Communications Framework (ECF) Eclipse Project 管理以数据为中心的系统 在 Eclipse 中交谈 /datatools/ /ecf 远程浏览器(SSH) /dsdp/tm 构建设备 GUI /dsdp/nab 生成报表 简化部署 编写 C/C++ 代码 编写 Perl 和 Ruby 代码 调试嵌入式设备 大纲 Web站点 /birt /Buckminster /cdt /dltk /dsdp/dd 用于构建 Eclipse 的工具,包

/eclipse 括 Platform、JDT、PDE 和 Equinox 11 12 Eclipse Modeling Framework (EMF) Eclipse Modeling Framework Technologies (EMFT) 开发模型 /emf 用于辅助模型开发的实用程

/emft 序 构建安装程序 开发图形应用程序 开发图形编辑器 13 14 15 16 Eclipse Packaging Project (EPP) Graphical Editing Framework (GEF) Graphical Modeling Framework (GMF) Model Development Tools (MDT) /epp /gef /gmf 用于辅助模型开发的实用程

/mdt 序 用于模型转换语言的框架 17 18 M2M Model To Text (M2T) /m2m/ 用于辅助模型开发的实用程

/m2t 序 关注基于任务的开发 19 20 Mylyn Rich Ajax Platform (RAP) /mylyn 开发基于 Eclipse 的 Web 2.0 /rap 应用程序 面向 SOA 的工具 支持子版本 分析程序(Profiler) 编写基于 Web 的应用程序 21 22 23 24 SOA Tools Platform (STP) Subversive Test and Performance Tools Platform (TPTP) Web Tools Platform (WTP) /stp /subversive /tptp /webtools 注:表3.1中的Web站点链接的基地址为: 有兴趣的读者可以进一步查阅相关资源。接下来,简要介绍 Eclipse的框架结构。·11·

2. Eclipse平台架构 Eclipse 是当前世界上最新最实用的 IDE 环境,被誉为令人着迷的可以随心所欲定制的

开发环境, 它提供的核心框架和可扩展的插件机制给广大程序员提供了无限的想象和创造空

间,网上流传相当丰富且全面的开发工具方面的插件,使 Eclipse 已经超越了开发环境的概

念。现在,您可以先想一想或者查阅一下 Mozilla Firefox 及其插件,体验一下这个 Web 浏

览器是不是很好的解决了扩展性问题。 Eclipse 也一样,通过它的插件模式我们可以安装不同的插件来进行 HTML的编辑、数

据库的设计、Java 开发、C++ 开发等等,所有这些开发工作完全在一个 Eclipse安装平台上

进行。 而且Eclipse模型所能做的远超过了这些, 理解Eclipse插件的关键是首先要理解Eclipse 扩展点,正是这个扩展点帮您在 Eclipse中添加新功能。例如,如果希望在菜单中添加一项,

就是通过 Eclipse扩展点实现的。

所以当 Eclipse 插件实现了一个扩展点,就创建了一个扩展,此外,扩展还可以创建自

己的扩展点。这种插件模式的扩展和扩展点是递归的,而且被证明是非常灵活的。在最初对 Eclipse开发进行区域性调查时,最初的决定之一便是: “We will eat our own dog food” (注:

谚语, 指一个公司在日常运行中使用自己的产品), 即 Eclipse团队要使用 Eclipse进行 Eclipse 的开发。事实上,Eclipse 本身是一个核心的运行时绑定了一些在插件之上构建的插件,换

句话说,Eclipse 本身就是一系列的插件。这样随着使用 Eclipse 构建 Eclipse 的经验累积,

这种插件模式就变得日臻成熟,并从而造就了 Eclipse在 IDE 市场上的霸主地位。

实际上,目前的 Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,

将构成一个丰富多彩的工作环境而不仅仅是一个 IDE。Eclipse 以 JVM 为底层,包含了 Platform、JDT(Java Development Tools)、PDE(Plug­in Development Environment)等几层,

如图 3.11 所示。Eclipse的特征就在于可以使用 plug­in(插件程序)来扩展它的功能。

Eclipse Platform图3.11 Eclipse架构 Eclipse平台(Eclipse Platform)就像一幢房子,由数种组件组成:平台核心(Platform kernel) 、工作台(Workbench) 、JFace、SWT、工作空间(Workspace) 、团队组件(Team component)和说明组件(Help)以及 JDT、PDE 等等都是基于这个平台的插件。下面介绍

一下这些基础插件的基本功能,以帮助读者理解以更加自如的驾驭 Eclipse这把“利器” 。 Workbench用来控制工作台。工作台指的是桌面开发环境。工作台的任务就是创建、管

理和导航工作台的资源,并提供公共范例,从而获得无缝的工具集成。启动 Eclipse 后,工

作台是主要的工作窗口(参阅图 3.18) ,Eclipse工作台可以用来创建、管理和导航项目,也

可以管理资源。但它本身并不知道如何编辑、运行和测试 Java 程序或 JSP 页面,这些功能

都是由其他组件来完成的。简单的说,Workbench负责控制工作台上包括菜单、视图、透视 ·12·

图等等的操作。Workbench包含用于构建用户界面的附加工具箱JFace和 SWT。 SWT(Standard Widget Toolkit)是一个类似awt、swing的 Java 组件,是一个轻量级的

组件,是 awt 和 swing 的强大竞争者,而且和 awt、swing 不同的是,它底层实现不是基于 JRE,而是根据不同操作系统,有相应的动态链接库实现,所以作出来的效果很专业,SWT 主要用于 Workbench 的 UI 绘制。迄今为止,SWT 无论是在性能和外观上,都超越了 SUN 公司提供的awt 和 swing,而且,SWT已经十分稳定。 JFace是基于 SWT的一个插件,对 SWT进行了封装, 封装实现了对话框、 视图等东西。 Workspace 是用来控制工作空间的(有别于工作台),包括对工作空间中项目的控制、

删除、添加、编译项目资源等等,都由它来控制。Eclipse 平台体系结构的重点在于工作空

间。工作空间维护构建和测试软件项目所需的一切,它包含对象(源代码和资源),还保存

了用于项目、IDE 和插件的配置设置。 Help是一个 Eclipse帮助系统,单击 Eclipse的菜单〖Help〗à〖Help Content〗就可以

打开这个帮助系统,这个系统不是封闭的,可以进行扩展。 Team是一个 CVS 系统,可以和 CVS Server 协调使用,进行版本控制。 JDT即Java Development Tools,用来开发 Java 的插件。这是 Eclipse附带的一个标准的

插件集,大多数用户可以把 Eclipse当作 Java IDE 来使用,虽然它本身远不止于此。 PDE 即 Plug­inDevelopment Environment,开发插件的平台。 Eclipse平台的用户界面(UI:User Interface;参见图 3.16)有这几个组件:菜单、工具

栏、视图、透视图、编辑器。

菜单和工具栏不用说了,地球人都知道的。

视图就是 View,比如 Navigator、Outline、Tasks 等等都是视图,每一个视图都有自己

相应的功能,可以参看 WorkbenchUser Guide来了解这些视图。

编辑器,就是 Editor,比如有开发Java 的编辑器,编写文本的编辑器,等等。

透视图,英文是 perspective,Eclipse 工作台把几个视图的组合称为透视图,如: “Java 透视图” ,每个“工作台”窗口都包含一个或多个透视图。透视图定义“工作台”窗口中视

图(View,如 Menu、Toolbar、Editor 等)的初始集和布局。在窗口中,每个透视图共享同

一组编辑器。每个透视图都提供了一组功能,目的在于完成特定类型的任务或使用特定类型

的资源。比如要开发Java,就经常会用到 Package Explorer、Tasks、Outline等 View和编写 Java 的 Editor,以及适合开发 Java 的菜单(Source 和 Refactor),那它就会布局一个适合开

发 Java 的透视图;而“调试”透视图包含将在调试Java 程序时使用的视图。当在“工作台”

中工作时,有可能频繁地在各个透视图之间进行切换。

透视图控制出现在特定菜单和工具栏中的内容。它们定义可视操作集,可以更改这些操

作集来定制透视图,并且可以保存以此方式构建的透视图,并建立自己的定制透视图,稍后

可以再次打开它。

小贴士

当把 Eclipse的面孔整的一塌糊涂、 目不忍睹的时候, 可以使用 〖Window〗

à〖Reset Perspective〗菜单将 Eclipse还原成默认的老面孔(透视图) 。

想一想

回过头来,请回味一下儿时的乐高积木,Eclipse 是不是和积木具有相同

之处!进一步说,您可以再考虑一下 SOA。 3.3 Eclipse及其常用插件的基本配置 Eclipse及相关插件安装完成之后,要想让它们正常工作,还要做一些相关的配置。·13·

3.3.1 Eclipse 的界面和菜单

在配置 Eclipse 之前,让我们先一睹 Eclipse 的芳容,了解一下 Eclipse 的界面和菜单,

以帮助读者更得心应手的应用Eclipse这把“利器” 。 1. Eclipse的运行界面

完成了 Eclipse + MyEclipse的安装和汉化,启动Eclipse,关闭欢迎界面,如图 3.12 所

示。

图3.12 MyEclipse开发平台

“千唤万唤始出来” ,Eclipse的芳容原来如此。

小贴士

所谓汉化,是对 Eclipse 界面和帮助的部分汉化,MyEclipse 的相关菜单

和操作界面并没有汉化。Eclipse 的某些地方可能仍然显示英文, 如 Search主菜单项本身 (这

是 MyEclipse与 Eclipse共用这一项,前者的名称覆盖了后者而已) 。但瑕不掩瑜,这对不熟

悉英文界面的读者还是有很大帮助的。 2. Eclipse的常用菜单项

结束本节之前,我们再以中英文对照的形式来熟悉一下 Eclipse 3.3.2 的常用菜单项。今

后,我们将频繁的反复和它们打交道啦。 File(文件)菜单的相关选项如下:

(1)〖File| New(新建)〗:新建文件、项目,或者其他都是从这里进入。

(2)〖File|Switch Workspace(切换工作空间)〗:Eclipse可以拥有多个工作空间,在不

同的工作空间可以放置不同的项目文件。Eclipse 依据工作空间分别保存相关的配置信息。

选择一个工作空间,Eclipse就会加载该空间中的配置信息和所有项目到当前工作台中。

(3)〖File| Import(导入)〗:在某些情况下,需要把在其他地方完成的项目放到自己使

用的 Eclipse工作空间中,这可以通过导入功能来实现。

(4)〖File| Export(导出)〗:这个是导出功能,比如开发一个项目完成之后,最后要将

项目打包进行发布,而打包的功能就是由导出功能来实现的。

(5)〖File | Properties(属性)〗:它是针对当前项目或文件的属性信息。当导入二进制·14·

包、修改项目输出路径等操作的时候,就要用到该命令。 Window(窗口)菜单的相关选项如下:

(1)〖Window |New Window(新建窗口)〗:如果觉得在一个Window下开发东西太挤

的话,可以再开一个,等于冒出两个 workbench,其实操作的resource都是一样的。

(2)〖Window | Open Perspective (打开透视图)〗:Eclipse 有很多透视图如resource、java 、 java browsing、cvs、debug等等,可以根据当前开发的需要,选择需要的透视图进行开发。

(3)〖Window | Open View(打开视图)〗:透视图毕竟有限,不可能把所有的 view都帮

用户开好,所以,如果发觉需要用某一个 view,但是它没有开,就用这个选项。

(4)〖Window | Customize Perspective(定制透视图)〗:毕竟每个人都有自己的习惯,

如果觉得这个透视图用的不爽,可以自己定制的。

(5)〖Window | Reset Perspective(复位透视图)〗:前面已经提示了,把 Eclipse还原成

默认的老样子。

(6)〖Window |Preferences(首选项)〗:这个是非常重要的选项,它保存了很多配置方

面的东西, 比如字体, 快捷键设置, 很多很多方面都要用到它。 关于 “首选项” (Preferences) ,

在配置 Eclipse及其插件时,总是不可或缺的。

小贴士

“文件·属性”与“窗口·首选项”是不同的,前者针对当前项目或文

件,后者针对某个工作空间的整个 Eclipse平台。 Help(帮助)菜单的相关选项如下:

(1)〖Help| Welcome(欢迎)〗:Eclipse很多插件都做了欢迎页面,这个页面对初学者

来说比较有用,否则很多情况下,新的东西将无从下手。建议读者从这里入手, “比着葫芦

画画葫芦” ,对 Eclipse先有个初步的认识。

(2)〖Help| Help Content(帮助内容)〗:用来启动帮助系统。

(3)〖Help| Soft Updates〗:包括 Find and Install 和 Manage Configuration两个子菜单,

查看、管理、升级 Eclipse及其插件。

(4)〖Help| About Platform(关于)〗:可以从这里查看安装了哪几个 Workbench级的重

要部件,并了解 Eclipse功能部件、插件以及 Eclipse 平台配置的详细信息。

小贴士

熟练使用“帮助”也是一种很重要的技能哟!如要在线学习 Eclipse 的最

新帮助文档,可以访问 /documentation/。

关于 Eclipse的菜单,暂且介绍这些。今后,将会逐步介绍一些常用的重要菜单。 3.3.2 配置 Java 和 Tomcat 插件

启动 Eclipse,在“首选项” (Preferences)窗口中,先来配置Java 和 Tomcat。 1. 配置Java Eclipse 中 Java 的基本配置,主要是选择“已安装的 JRE” 。对于通过.exe 文件安装的 MyEclipse,系统默认的是随之安装的 JRE(%MyEclipse%jre),这个 JRE 实质上是一个完

整的JDK; 对于 Eclipse或解压缩手动方式安装的 MyEclipse, 将自动搜索已安装的系统JRE。

如果想更改Eclipse默认 JRE 的配置,可以如下操作。

单击〖Java〗à〖已安装的JRE〗(Installed JREs),单击【添加】(Add)按钮,在

弹出的“添加JRE·JRE 类型” (Add JRE·JRE Type)窗口中,选择“标准 VM” ,单击【下

一步】按钮。

在弹出的“添加JRE·JRE定义” (Add JRE·JRE Definition)窗口中,单击按钮

【目录】 (directory) 选择 JRE 的主目录%Java_Home%jdk1.5, 如图 3.13所示; 类似添加 jre1.5·15·

(%Java_Home%jre1.5)。

图3.13 添加jdk1.5 单击【确定】按钮,返回“已安装的JRE”窗口,并从 JRE列表中选择 jdk1.5 作为

默认的JRE,如图 3.14所示。

图3.14 添加JRE并选择jdk1.5作为默认的JRE 想一想

配置信息保存到哪里去了?请观察工作区 (Workspace) 中的目录.metadata (可能还有其他以.开头的目录)。同时再启动一个 Eclipse,指定别的一个工作区,查看之前

的配置还有没有?将Eclipse都关闭,删除.metadata 目录,再重新启动Eclipse,原来的配置

还有吗?欢迎窗口怎么又重新冒出来?Eclipse 的配置是针对工作区而言的,不同的工作区

可以有不同的配置,它们“各自为政” ,互不干扰。

小贴士

对于手动解压安装的 Eclipse,缺省的 JRE 是%Java_Home%jre。而在 MyEclipse 中,Tomcat 等 Servlet 引擎需要一个完整的 JDK,因而,同样类似添加并设置默·16·

认的JRE。 2. 配置 Tomcat 如果使用 Tomcat 启动插件,则要在 Eclipse中做如下基本配置。配置完成后,可以实现

在 Eclipse的控制台中启动和关闭 Tomcat,也可以用来创建 Tomcat 工程(Tomat Project) ,

还可以向 Tomcat 发布工程,以在Eclipse中测试。

单击左侧的〖Tomcat〗选项,在右侧 Tomcat version 中选择 Tomcat 5.x;设置 Tomcat 安装目录(Tomcat home) ,如 E:cat5.5;根据 Tomcat home的设置,系统自

动填写下面的 Context 相关选项,如图 3.15 所示,单击【应用】 (Apply)按钮。

图3.15 配置Tomcat基本项

单击〖Tomcat〗à〖Advanced〗,在右侧配置 Tomcat base选项(与 Tomcat home相

同),单击【应用】按钮。

单击〖Tomcat〗à〖JVM Settings〗,在右侧 JRE下拉列表中选择 jre1.5;单击【应

用】按钮。

单击〖Tomcat〗à〖Tomcat ManagerApp〗,根据安装 Tomcat 时的端口设置,对应

设置 Tomca 应用管理器的 URL,单击【应用】按钮。

单击【确定】按钮,关闭窗口 Preferences。

小贴士

注意观察Eclipse工具栏中有 Tomcat 的三个特有图标:

自动添加这三个按钮了。不过,如果没有正确配置的话,则不能正常使用。

(Tomcat Start、Tomcat Stop、Tomcat Restart) 。事实上,当我们正确安装 Tomcat 启动插件后,就已经

单击【StartTomcat】快捷按钮,Tomcat 能正常启动,并在控制台(Console)视图中最

后提示“信息: Server startup in 1609 ms” (关于该启动时间,单位为毫秒 ms,数

值大小视机器配置不同而有所不同),如图 3.16所示。·17·

图3.16 Tomcat正常启动

小贴士

如果 Tomcat 正在运行,则在控制台视图中将会给出一些错误提示信息。 3.3.3 配置 MyEclipse 插件

下面介绍 MyEclipse插件的注册及基本配置。 1. 注册 MyEclipse MyEclipse 堪称最强悍的 J2EE 开发插件,但它不是免费的,如果不注册,就只能免费

试用 30 天。

在 Eclipse的“首选项”窗口中,单击〖MyEclipse〗à〖Subscription〗,如图 3.17 所示,

单击右侧面板的【Enter Subscription…】按钮,在弹出的“Update Subscription”窗口中,填

写自己的用户名和注册码,单击【Finish】按钮,返回 Preferences 窗口。

图3.17 注册MyEclipse 2. 添加 jdk1.5 如果还没有添加 jdk1.5,请参阅本节 3.3.2小节的“配置 Java” 。 3. 配置应用服务器 Eclipse中的 Tomcat 基本配置如下:

在 Eclipse的“首选项”窗口中,单击左侧的〖MyEclipse〗à〖Servers〗à〖Tomcat 5.x〗·18·

选项,在右侧 Tomcat Server 中选择“Enable” ;单击【Browse…】按钮,设置 Tomcat 安装

目录(Tomcat home) ,如 E:cat5.5;根据 Tomcat home 的设置,系统将自动

填写其他几项,如图3.18 所示,单击【应用】按钮。

图3.18 配置MyEclipse的Tomcat的基本信息

小贴士

不管是选择哪种 Web 服务器,都要将其设置为“Enable”。

展开〖Tomcat 5.x〗,选择〖JDK〗选项,在“Tomcat JDK name”下拉列表中选择 jdk1.5 或 MyEclipse6.5,如图 3.19 所示。

JDK的注释图3.19 配置MyEclipse的Tomcat的JDK名称

小贴士

如果没有添加 jdk1.5,也可以在这里单击【Add】按钮进行添加;如果前

面添加了 jdk1.5 而这里看不到,可以先关闭“首选参数”窗口,再打开它,即可在“Tomcat JDK name”下拉列表中选择 jdk1.5 了。

想一想

为什么必须选择 jdk1.5(%Java_Home%jdk1.5)呢?因为 MyEclipse要求 ·19·

必须一定是一个完整的JDK,如果仅仅指定一个JRE(如 jre1.5:%Java_Home%jre1.5),将

引发一个启动异常(请注意查看图 3.25 中的 JDK 注释)。事实上,JDK 除了有 Java 的运行

环境,还有Java 程序所需要的类,而JRE 只有运行环境。 *3.3.4 配置工作空间及页面文件编码

如果要使应用系统能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java 文件使用 UTF­8 编码。然而,Eclipse工作空间(workspace)的缺省字符编码是操作系

统缺省的编码,简体中文操作系统(如 Windows XP 简体中文版)的缺省编码是 GB18030,

在此工作空间中建立的工程编码是 GB18030,工程中建立的 Java 文件也是GB18030。如果

要使新建立项目、Java 等文件直接使 UTF­8 则需要做一些简单的设置。 1. 配置工作空间的文本文件编码(全局编码)

选择菜单〖窗口(Window)〗à〖首选项(Preferences)〗,在 Eclipse 的“首选项”

(Preferences)窗口中,单击左侧的〖常规〗à〖工作空间〗选项,在右侧的“文本文件编

码”区域将选择“UTF­8”选项,如图 3.20 所示,单击【应用(Apply)】按钮。

图3.20 设置工作空间的文本文件编码为UTF­8 小贴士 UTF­8 字符集是一种通用的字符编码。无论数据库,还是页面文件,建议

均采用 UTF­8 字符编码,这样可以较为有效的解决中文乱码和国际化问题;如果只考虑中

文乱码问题而无需考虑国际化的话,则可以统一采用GB18030。 2. 配置 HTML及 JSP 的字符编码

在 Eclipse的“首选项” (Preferences)窗口中,单击左侧的〖MyEclipse〗à〖Files and Editors〗à〖JSP〗选项,在右侧 Encoding中选择“UTF­8”选项,如图 3.21 所示,单击【应

用】按钮。·20·

图3.21 设置JSP页面文件的字符集

类似修改HTML文件的字符编码。Eclipse的其他诸多字符编码选项,也要注意修改。 3.4 Eclipse的基本应用

前面讲述了Eclipse的安装和配置,本节将通过两个实例具体讲解 Eclipse的基本应用。

这两个实例虽然比较简单,但是“麻雀虽小,五脏俱全” ,希望读者能够掌握应用 Eclipse 开发 Java 应用程序、Web 项目和 JSP 页面的基本方法,在此基础上,逐步探索应用 Eclipse 的综合应用。 3.4.1 Case:使用 Eclipse 开发 Java 应用程序

尽管本书不是一本介绍Java 及其应用的教程,但进行 Java Web 开发免不了要编写一些 Java 程序,因而首先回顾一下如何应用Eclipse开发 Java 应用程序。

各类程序设计和 Web 开发,大都是从“Hello world”开始的。可以说,Hello world已

经成为学习新技术的经典入门示例。本书也遵循这一规则,使用 Eclipse构建著名的“Hello world”示例程序。这将创建一个 Java 项目和一个在运行时将在控制台显示“hello world”

的 Java 类。让我们开始吧!

打开Java 透视图

在开发Java 程序之前,单击菜单〖窗口〗→〖打开透视图〗→〖其他〗,弹出“打开透

视图”窗口,选择“Java” ,切换到“Java 透视图” 。

小贴士

单击工具栏右侧的按钮

创建Java 项目

,可以快速打开相关的透视图;如果打开了三

个或更多透视图,则在当前透视图右边会出现扩展按钮 以供快速切换。

首先需要具有一个Java 项目:选择〖文件〗→〖新建〗→〖Java 项目〗 (Java Project) ,

弹出“新建Java 项目” (New Java Project)向导窗口,填写项目名称:HelloWorld,其他采

用默认选项, 单击 【完成】 (Finish) 按钮, 返回 Eclipse的 Java 透视图, 在包资源管理器 (Package·21·

Explorer)中已经列出了 HelloWorld项目,如图 3.22所示。

图3.22 新建Java项目HelloWorld之后的Eclipse 创建 HelloWorld类

单击菜单〖文件〗→〖新建〗→〖类〗 (Class) ,启动“新建Java 类” (New Java Class)

向导。将包命名为 03,类名取为 HelloWorld,并选择 public static void main(Sting[] args)以指定添加一个“main”方法,如图 3.23 所示。

图3.23 新建HelloWorld类·22·

小贴士

诸如上述新建类等基本操作,也可以右击项目名称HelloWorld,从快捷菜

单中选择;或者,从工具栏中单击相关按钮。其他类似操作,不再复述。

注意

要创建一个能独立运行的应用程序,则必须指定 main方法。建议当使用该

向导时,指定添加一个 main方法(注意选择 public static void main(Sting[] args)复选框)。如

果确实不需要 main 方法,可以在测试后将其注释或删除。这是编写不含 main 方法的 Java 类的一个小技巧。

在 main方法添加 n行

既然已经有了 HelloWorld类,就可以在“public static void main”方法中添加以下语句:

“n("Hello world!");” ,如图 3.24 所示,保存所做的更改。

图3.24 在main方法添加n行

小贴士 n("Hello world!")后面必须添加一个西文的分号(;) ,这是

一条Java 语句的基本要求;编辑文件后如果没有保存,将会在下一步中提示是否需要保存。

运行Java 应用程序

在包资源管理器中选择 HelloWorld类之后,再选择菜单〖运行〗 (Run)→〖运行方式〗

(Run As)→〖Java 应用程序〗 (Java Application) ,文本“Hello world!”将显示在控制台

(Console)视图中,如图 3.25所示。

图3.25 控制台中的运行结果

小贴士

“运行” (Run)菜单也是频繁使用的功能选项。

至此,我们已经成功地构建了Hello world应用程序并且它运行良好!

小贴士

请读者注意查看 的存放位置及相关的目录结构。

想一想 Eclipse 的常用工具栏中“运行” 、 “调试”应用程序的按钮是哪几个?运

行应用程序时,控制台上显示的各个按钮分别具有哪些功能?·23·

3.4.2 Case:使用 MyEclipse 开发 Web 应用程序

开发一个 Web 站点,就是做一个Web 项目(Web Project)。使用 Eclipse,可以开发Java 项目; 安装了MyEclipse插件, 还可以开发各类Java企业级项目, 如EJB (EnterpriseJavaBean)

项目、Enterprise Application 项目、Web 项目、Web Service 项目等。下面介绍如何使用 MyEclipse 创建一个 Web 项目,以及如何在 Web 项目中创建 JSP 文件,并说明如何使用 MyEclipse部署它们。

新建一个Web 项目

单击菜单〖文件〗→〖新建〗→〖Web Project〗,或选择工具栏上“新建”图标下拉按

钮〗( )→〖Web Project〗,在弹出的“New Web Project”窗口中填写项目名称: WebAppTest,并选择“Java EE 5.0” ,如图 3.26所示。

图3.26 New Web Project窗口

小贴士

(1)习惯上,在 scr 目录中放置Java 后台源代码,而在 WebRoot 中放置站点设计文件。

(2)一个站点,对应一个项目,也就对应一个目录。这是项目开发的一个基本原则。 MyEclipse透视图

单击【完成】按钮,系统提示是否打开关联的透视图(Open Associated Perspecrive),

单击【是】按钮,MyEclipse 将全面“接管”Eclipse——系统以 MyEclipse 的透视图(工作

台)取代了Eclipse的默认界面,此亦即 MyEclipse默认的透视图。

在 WebAppTest 项目上新建JSP 页面

在包资源管理器视图中单击已建立的“WebAppTest”Web 项目,选择菜单〖文件〗→

〖新建〗→〖JSP(Advanced Templates) 〗 ,在弹出的“Create a new JSP page”窗口中填写文

件名称:TestJSP .jsp, 如图 3.27 所示, 单击 【完成】 按钮, 即在编辑器视图中打开一个 文件。·24·

图3.27 新建一个JSP文件

小贴士

如果在“文件|新建”菜单中没有“JSP”选项,可以选择菜单〖文件〗

→ 〖新建〗 → 〖其他〗, 在 “新建” 窗口中依次选择 MyEclipseàWebàJSP (Advanced Templates)

或 JSP(Basic Templates) 。

想一想

在 WebAppTest 项目中创建了一个页面文件 (根据文件模板,

自动添加了不少的东西哟!) ,如何在浏览器中测试它们呢?

手动部署简单的Web 项目

要在浏览器中访问 Web 项目和页面文件,就需要将它们部署到服务器中。现在,采用

手动方式部署并访问这个 Web 项目和JSP 页面文件。

(1)打开资源管理器,在%Catalina_Home%webapps 目录中新建目录 WebAppTest, %Catalina_Home%即 Tomcat 的安装目录。

(2)将 F: workspaceMyEclipseWebAppTestWebRoot 目录中的 文件复制到 %Catalina_Home%webappsWebAppTest 目录中。

小贴士

请读者特别注意:将 F: workspaceMyEclipse换成自己的工作空间。

(3)打开浏览器,在地址栏中键入:localhost:8090/WebAppTest/,即可

访问该页面。

编辑JSP 文件

在页面 的部分填加一句<%="中文正常显示了吗?OK!"%>,如清单 3.1 所示,其他不做任何修改。

清单3.1 编辑页面文件

想一想

现在修改了页面文件 ,要在浏览器中测试它,莫非需要再手动

复制一次这个文件吗?有没有简便一点的办法呢?

应用 MyEclipse自动部署 Web 项目

手动部署 Web 项目,确实是一件费力劳神的事情。如果您更喜欢在独立的浏览器中测·25·

试页面或 Servlet,而非 Eclipse的“Web Browser”视图或“内部浏览器”视图的话,可以使

用 MyEclipse的部署(Deploy)功能。

(1)单击工具栏中的按钮

3.28 所示。

,弹出“Project Deployments” (项目部署)对话框,如图 图3.28 “Project Deployments” (项目部署)对话框

(2)单击【Add】按钮,弹出“New Deployment”窗口,在 Server(服务器)下拉列

表中选择“Tomcat 5.x” ,如图 3.29 所示。

图3.29 在“New Deployment”窗口中选择Tomcat5.x作为Server (3)单击【完成】按钮,结果如图 3.30 所示,而且提示“Successfully deployed” (已

经成功部署)。·26·

提示部署成功图3.30 “Project Deployments” (项目部署)对话框

在浏览器中测试JSP 页面

打开浏览器,在地址栏中键入:localhost:8090/WebAppTest/,如图 3.31 所示。

图3.31 的运行结果

小贴士

如果中文显示乱码,或者编辑页面时无法输入中文,请检查页面编码。

至此,Web 项目正确部署,JSP 页面运行正常,一个简单的 Web 项目顺利完成。

练一练

创建 Web 项目 jspBook,开发第 2 章 2.3节例程 (清单 2.1),并部

署测试成功。 3.4.3 Web 项目目录结构初探 MyEclipse 将 Web 项目 WebAppTest 在服务器 Tomcat 中是如何部署的?图 3.32 对比展

示了这个项目在 MyEclipse中以及资源管理器中部署前后的目录结构。

·27·

(b)部署之前

(a)MyEclipse中的WebAppTest项目 (c)部署之后

图3.32 WebAppTest项目在MyEclipse中以及资源管理器中部署前后的目录结构

注意

关于 Web 项目部署前后的目录结构,往往是初学者颇为迷惑之处。请读者

务必仔细揣摩,研究透彻。本书后面的章节还将手动部署有关项目,以帮助读者理解 Web 项目的目录结构。 3.5 Eclipse与 JUnit、Ant和 CVS以及系统日志 Eclipse 是一个具有无限潜力的集成开发环境,它广泛集成了各种领域的工具,如编程

工具、应用开发工具、建模工具、测试工具、版本管理工具等。本节首先介绍一个场景,给

出在项目开发、编译、部署过程中遇到的诸多问题,然后介绍如何应用 Eclipse 来简化或解

决这些问题,并提高工作效率。 3.5.1 一个令人焦头烂额的工作场景

现在有一个Web 项目,需要持续地开发和改进,除了项目经理李向阳,项目组还包括 7 个开发人员、3 个测试人员和一个数据库管理员(DBA) ,这是一个最近组件的开发团队,

其中,有 4个程序员是新近招聘的应届毕业生。

项目开发起步时间不长,仅仅持续了两周,而项目经理李向阳却倍感焦头烂额,甚至有

些恼火。问题主要集中在如下三个方面。

(1)4 个新手之中,除严钻喾* 外,其他三位是错误频出,甚至连基本的拼写错误都不

能避免。加之思维不够缜密,逻辑训练不足,四人编写的代码质量偏低,与设计预期的效果 * 喾,读“库”的音,意为传说中的上古帝王名。严钻喾之父为其取这个名字的寓意就是:苦钻研。·28·

差距较大。这个问题严重影响了项目的开发进度。

(2)随着项目的进展,项目目录结构已经基本确定,但各类文件却与日俱增,如何快

速地编译Java 文件、构建并重构项目资源,以及部署整个 Web 项目呢?

(3)随着时间的推移,特别是在迭代和版本更新时,只是简单的拷贝备份,很容易引

起版本的混乱。如何在相当长的时间内维护大量的各类文档呢?由于是团队共同开发,有两

个程序员同时修改了数据库配置文件,DBA还修改了一个字段。哎,怎一个“乱”字了得?

项目组经过讨论, 一致认为,要解决上述三个问题,要从这样三个方面着手:单元测试、

资源构建和版本控制。

“好,马上行动,寻求方案和工具,逐一解决这些问题,争取在第四周开始第一个版本

的第 1 次迭代。散……”李经理的“散会”尚未脱口,部门经理走进会议室,对项目组提出

一个新的要求:

“日志是系统中非常重要的方面。建议在代码中所有关键的地方,使用标准的日志框架

记录程序的状态,包括异常处理程序。——这是一条Java EE 开发最佳实践。 ” 3.5.2 Case:在 Eclipse 中应用 JUnit 进行单元测试

毋庸置疑, 程序员要对自己编写的代码负责: 不仅要保证代码能通过编译、 正常地运行,

而且要满足需求和设计预期的效果。 单元测试正是验证代码行为是否满足预期的有效手段之

一。JUnit 是 Java 社区中知名度最高的单元测试工具,它非常小巧,但功能却非常强大,而

且源代码开放。JUnit 大大简化了开发人员执行单元测试的难度,特别是JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单。

下面在“HelloWorld”Java 项目的基础上,介绍如何应用 Eclipse自身集成的 JUnit 插件

来进行单元测试。

新建测试“源文件夹”

可以开始编写单元测试了吗?等等……, 打算把单元测试代码放在什么地方呢?把它和

被测试代码混在一起,这显然会照成混乱,因为单元测试代码是不会出现在最终产品中的。

建议分别为单元测试代码与被测试代码创建单独的目录, 并保证测试代码和被测试代码使用

相同的包名。这样既保证了代码的分离,同时还保证了查找的方便。遵照这条原则,在包资

源管理器视图中右击已建立的“HelloWorld”项目à〖新建〗à〖源文件夹〗,创建一个“源

文件夹”testsrc。

最佳实践

请牢记这样一条JUnit 最佳实践的经验: 单元测试代码和被测试代码使

用一样的包,不同的目录。

新建测试用例,添加 JUnit 到构建路径

(1)选择〖文件〗à〖新建〗à〖其他〗,在“新建”对话框中选择〖Java〗à〖JUnit〗

à〖JUnit 测试用例〗,单击【下一步】按钮。

(2)在弹出的“新建JUnit 测试用例”窗口中选择“新建 JUnit 4 测试” ,选择“源文

件夹”为HelloWorld/testsrc,包命名为 03,名称命名为 TestHelloWorld,如图 3.33 所示。·29·

图3.33 新建“TestHelloWorld”的JUnit测试用例

小贴士

测试类 TestHelloWorld之所以使用“Test”开头,完全是为了更好的区分

测试类与被测试类。

(3)单机【完成】按钮。由于是第一次新建 JUnit 4 测试用例,弹出图 3.34 所示的对

话框,单击【确定】按钮。此时,项目的目录结构如图 3.35 所示。

图3.35 创建测试用例后的项目

图3.34 “HelloWorld的属性”窗口

目录结构

编辑测试用例

测试用例文件 的代码如清单 3.2所示。

清单3.2 测试用例 1: package 03; 2: 3: import static Equals; 4: import ; 5:·30·

6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: public class TestHelloWorld { // 测试HelloWorld正常运行的情况

@Test public void sayHelloWorld() { HelloWorld hi = new HelloWorld(); String result = (); assertEquals("Hello world!", result); } }

注意

需要注意的是,测试方法需要按照一定的规范书写:

(1)测试方法必须使用注解 修饰。请读者特别留意第 8 行的@Test。

(2)测试方法必须使用 public void 修饰,而且不能带有任何参数。

运行测试用例

单击〖运行〗à〖运行方式〗à〖JUnit 测试〗,看看JUnit 视图中的运行结果如何?

小贴士

在编写程序代码之前,与之对应的自动测试必须被写好。甚至程序代码

并不存在,那也要看见一个失败的测试结果。——这是 TDD 的主要规范之一,即测试先行

的设计和重构原则。

测试驱动开发(Test­Driven Development,简称 TDD)是极限编程的重要特点,它以不

断的测试推动代码的开发,既简化了代码,又保证了软件质量。

编辑被测试文件

在被测试文件 中添加方法:say(),如清单 3.3 第 13~15 行所示。

清单3.3 被测试文件 1: package 03; 2: 3: public class HelloWorld { 4: 5: /** * @param args 6: 7: */ public static void main(String[] args) { 8: // TODO Auto­generated method stub 9: 10: n("Hello world!"); 11: } 12: public String say() { 13: return ("Hello World!"); 14: 15: } 16: 17: }

再次运行测试用例

再次运行测试类 TestHelloWorld,结果显示在 JUnit 视图中,如图 3.36 所示。怎么还没·31·

有通过,故障在哪啊?单击故障跟踪栏右侧的按钮 ,比较一下期望结果与实际结果(如

图 3.37 所示),原来是 world这个单词首字母大小写的问题啊!细心的读者是否早就发现了

这个问题。

图3.36 测试类TestHelloWorld的运行结果JUnit视图

图3.37 查看期望结果与实际结果的比较情况

小贴士

孔乙己先生治学非常严谨, “回”字有四种写法研究的非常透彻。软件编

程也是这样的严谨,甚至是“古板” ,写错一个字母,哪怕是大小写不同,都不行的。

第三次运行测试用例

修改被测试类中的 say()方法:将“return ("Hello World!");”修改为“return ("Hello world!");”,第三次运行测试类 TestHelloWorld,测试结构 JUnit 窗口中的红条

变成绿色的啦!绿条证明测试成功了。

最佳实践

请牢记这样一条JUnit 最佳实践的经验:测试任何可能的错误。单元测

试不是用来证明您是对的,而是为了证明您没有错。

以上展示了如何测试Hello World这样简单的程序。实际上,它并没有多少实用价值。

顺便说明,随书 CD 的HelloWorld项目中还有一个测试类 TestWordDealUtil,请读者自行试

运行并根据注释逐步调试,限于篇幅,这里不再赘述。

关于测试的内容很多,这里权作抛砖引玉,不再展开介绍。需要强调的是:测试是一个

持续的过程,也就是说测试贯穿与开发的整个过程中。因而,本节更多的是希望读者首先能

够树立一种软件测试的意识,并逐步养成测试的良好习惯。 *3.5.3 Eclipse 的资源构建和构建工具 Ant 制作 Java Web 站点时,当修改 Servlet、JavaBean 或 Filter 时,必须先编译它们,然后·32·

再部署到 WEB­INFclasses 下。如果不是使用 IDE 工具,这些琐碎的工作可以借助 build 工

具手动顺利完成。

现在已经有许多优秀的 build 工具,例如 make、gnumake、nmake、jam、Ant,它们实

现的功能与 Linux 系统的 make命令类似。Ant 是 的一个项目, 一款跨平台的、Java 开发界领先的 Build 工具。Ant 用 Java 的类来扩展,其配置文件是基于 XML 的任务树,能

让你运行各种各样的任务,任务的运行是由实现了特定任务接口的对象来完成的。

当开始一个新项目时,首先应该编写 Ant 构建文件。构建文件定义了构建过程,并被团

队开发中的每个成员使用。Ant 构建文件默认命名为 , 通常存放在项目顶层目录中,

这样可以保持项目的简洁和清晰。

主流的 IDE 通常是内置 Ant 任务来完成这些工作的,熟悉 Ant 内在的机理,可以阅读

或简单修改 无疑可以帮助你更灵活地集成、管理应用项目。如果需要学习 maven 这种开源项目管理解决方案,也是要以理解 Ant 为基础的。但是,从某种程度上来说,使用

命令行的方式工作是有背于敏捷开发的。 但笔者坚信: 首先应该掌握基础知识——换句话说,

我们应当要知道在表面之下究竟发生了什么。

正如测试工具JUnit已集成到Eclipse中一样,Eclipse 框架也将编译部署工具Ant和 IDE 进行了无缝整合。因而,可以在 Eclipse 环境下直接创建并运行 Ant 构建文件,使用扩展点

添加新的 Ant 任务和类型也无需另行安装和配置 Ant。

当用 Ctrl+S 保存.java 文件时,就会在一眨眼的时间生成一个.class 文件。当然只有在源

代码没有错误的情况下编译任务才能完成(有警告也是可以通过的)。对于 Web 项目,如果

正确配置如何部署它,则当保存一个.java 文件或.jsp 等各类文件,MyEclipse 也会自动将结

果部署到 Web 服务器。当然,这幕后的英雄当然是 Ant 啦。然而,编译和部署的过程是如

此之快,甚至感觉不到它的发生,这是多酷啊!

在 Java 程序员必备的工具中, 共同拥有且交口称赞的恐怕就非JUnit、Ant 莫属了。JUnit ——单元测试的神兵利器,可以实现测试自动化;Ant——编译部署的不二之选,可以自动

化构建和部署应用程序。如果将二者整合在一起,即可利用 Ant 的 JUnit 任务和其子任务在 Ant 构建文件配置中进行单元测试,真可谓珠联璧合。限于篇幅,不再举例说明。 *3.5.4 Eclipse 的版本控制和 CVS 随着项目的推进,需要在相当长的时间内维护大量的各类文档,特别是在迭代和版本更

新的时候, 如果只保存最新版本, 就丢失了以前的版本, 亦即不能再恢复到以前的某个版本。

如果只是简单的拷贝备份, 很容易引起版本的混乱。 此外, 项目开发需要一个团队协同工作。

因而,在实施一个项目的时候,一个好的版本控制工具是不可缺少的。 1. Eclipse的本地版本控制 Eclipse内置本地历史(Local History)记录的版本支持,用以跟踪工作台中源代码和其

他文件的修改。在本地历史机制下,可以选择“比较” (Compare with)、 “替换为” (Replace with)和“从本地历史记录复原” (Restore from Local History)等操作。需要特别注意的是:

在 Eclipse的资源中只有文件才具有本地历史记录,项目和文件夹都不具有本地历史记录。

可以在 Eclipse“首选项”中选择〖常规〗à〖工作空间〗à〖本地历史记录〗,可以设

置资源要保存的文件天数、每个文件的最大条目数以及最大文件的大小相关参数,如图 3.38 所示。·33·

图3.38 “本地历史记录”首选项 2. 借助 Eclipse实施 CVS 系统。

即使只涉及几个开发人员的小项目,也需要对源代码的更改进行严格控制。这就是源代

码管理软件的任务。源代码版本控制软件必须支持两个核心功能:①提供一种方法,能够协

调对源代码的更改,并能集成这些更改;②团队所提交工作的历史记录。当团队成员完成新

的工作时,通过将这些更改提交到资源库来共享他们的工作。同样,当他们希望获得最新可

用的工作成果时,就可以根据资源库中的更改,更新自己的本地工作空间。这意味着项目资

源库会因团队成员提交新工作成果而经常发生更改。换句话说,资源库应该表示项目的当前

状态。Eclipse 平台提供了作为团队在软件项目中共享代码和工作的能力。工作空间维护构建

和测试软件项目所需的一切,但工作空间是在开发人员的机器上本地进行维护的,而团队通

过外部资源库进行协作,不同开发人员的代码在资源库进行汇集。可以经由因特网通过“客

户机/服务器”体系结构访问资源库。 Eclipse 平台提供了对于直接从工作空间进行团队开发操作的支持。Eclipse 平台内置支

持一个(但也是最流行的一个)源代码管理系统:并发版本控制系统(Concurrent Versions System,简称 CVS)。 CVS 的主要功能是记录源文件的历史。当一组开发人员从事同一个项目时,CVS 将他

们彼此隔离开来。每个开发人员都在他/她自己的目录中独立工作,然后使用 CVS 资源库

(不时地)合并工作结果。 Eclipse 拥有与 Eclipse 平台 IDE 紧密集成的内置 CVS 客户机,它是作为一个单独透视

图(CVS Repository Exploring 透视图)而实现的,用于与 CVS 的交互。在 Eclipse“首选项”

中,选择〖小组〗(Team)à〖CVS〗,可以设置 CVS 的相关参数,如图 3.39所示。·34·

图3.39 “小组·CVS” 首选项

选择 〖窗口〗 à〖打开透视图〗 à〖其他〗 à〖 CVS 资源库研究〗 (CVS Repository Exploring),

切换到“CVS 资源库研究”透视图,即可使用所有 CVS 操作了。

要实现团队开发的 CVS,需要首先安装 CVS 服务器。CVSNT 是一款 Windows 版本的 CVS 服务器,可以从 ­/cvsnt/下载 cvsnt­,这是截至

作者写作本书时最新版本。 安装完成按要求重启计算机之后, 可以从开始菜单中打开 CVSNT 的控制面板。

关于 CVS 服务器的配置,在此不再赘述。但是,如果对于资源库、检出等这样的字眼

还比较陌生的话,希望您在这儿下一点功夫!

小贴士

如果不想使用 Eclipse 的内置 CVS 客户端的话, 提供的 TortoiseCVS 是一个很好的选择,可以从 /projects/tortoisecvs/下载它。这

只可爱的 CVS 小乌龟的最大特点就是完全结合到资源管理器的鼠标右键菜单中进行操作,

异常简单和方便。

想一想

现在老师要我们 6 个同学一组做课程设计, 要求协同开发一个Web 项目。

想一想,如何共享我们的项目资源,如何能够协调一致的推进项目开发呢? *3.5.5 log4j 日志器和 Eclipse 日志插件 Log4E 日志是系统中非常重要的方面。日志的用途包括调试、错误检查、跟踪或者审计跟踪。

这样可以更好地监视代码中变量的变化情况和跟踪代码的运行轨迹, 同时充当开发环境中的

调试器。

想一想

回想一下,您是否曾经频繁地插入 println 语句来跟踪和调试程序? Log4j 是 下的一个项目(/log4j/)。简单的说,log4j 就是帮助开发人员进行日志输出管理的 API 类库。它最重要的特点就是可以定义配置文件

灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j 除

了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。使用 log4j 可以·35·

很好的处理类似使用 n语句调试程序的情况。 Log4E 是 Eclipse平台支持日志记录的一个标准插件,是编写 log4j 日志最得力的助手。 Log4E 分 Free 和 Pro 版本,后者可以免费适用 45 天。可以访问 /获取 Log4E 的最新版本,本书使用的是 4e_free_版本。

练一练

请读者自行下载并安装 Log4E 插件。

安装完成 Log4E 插件,重新 Eclipse,在首选项中会多出一个 Log4E 选项,通常均采用

默认配置即可。同时,在Eclipse的“编辑”菜单和上下文菜单中会增加 Log4E 选项,如图 3.40 所示。

图3.40 一个Java方法上下文菜单中的Log4E菜单项

小贴士 Log4E 的最大优点就是点点鼠标即可轻松的插入日志, 而无须手动编写代

码。从这个上下文菜单来看,应用 Log4E 编写 log4j 日志是不是非常简单啊!

限于篇幅,同样不再赘述。希望读者能动手练习,掌握 Log4E 的基本应用。 3.6 单元实训与课外拓展

结束本章之前,请读者在复习回顾课本内容的基础上,围绕Eclipse平台架构及其插件,

以及 Eclipse和 MyEclipse插件的基本功能,就以下几个主题展开讨论。 3.6.1 课堂课后讨论

首先,请以小组为单位进行课堂或课后讨论: 1. 课堂讨论:什么是 IDE?轻量级开发工具和 IDE 各有哪些优缺点?作为初学者,您

打算采用哪类开发工具? 2. 课堂讨论:Java 开发工具有哪些?其中,哪些属于轻量级的,哪些属于 IDE?作为

初学者,您已经较为熟练的掌握了哪个开发工具? 3. 课堂思考和讨论:Eclipse为什么风靡流行成为最主要的Java IDE?怎么理解Eclipse·36·

的插件机制? 4. 向其他同学讲解:Eclipse的框架结构及其特点。 5. 向其他同学讲述:Eclipse常用插件有:Tomcat 启动插件、WTP 插件、MyEclipse插

件等,它们分别具有什么样的功能? 6. 向其他同学讲述:Eclipse的插件有哪几种安装方式? 7. 复习回顾、讨论:Java 编程规范。 3.6.2 上机实训练习

本章上机实验,要求掌握如下几点: 1. 获取并安装 Eclipse和 MyEclipse。 2. 安装 Eclipse的中文包,并创建中、英文版的双 Eclipse。 3. 安装 Eclipse插件:Tomcat 启动插件、XMLEditor 插件、ResourceBundle Editor 插件、 Findbugs 插件等。 4. 完成 Eclipse及 MyEclipse插件的配置,尝试设置工作空间及页面文件的字符编码。 5. 完成 3.4节示例:Java 项目HelloWorld和 Web 项目 WebAppTest。 6. 完成 3.5节中“应用JUnit 进行单元测试”的实例。 7. 应用 Eclipse/MyEclipse,独立创建 Web 项目 15eu 和 jspBook。 8. 仔细查看Web 项目 WebAppTest 和 15eu的目录结构和包资源管理器中的结构。

具体的实验步骤这里不再赘述,请读者参阅相关章节,独立完成,熟练掌握本章要点。 *3.6.3 课外拓展训练

最后,请围绕以下几个主题开展课外拓展训练。 1. 课外拓展:构建工具 Ant 及其基本应用。 2. 课外拓展:版本控制 CVS 有哪些主要功能?查看Eclipse中 CVS 的基本配置。如何

应用 Eclipse实施 CVS 系统? 3. 课外拓展:log4j 日志器的基本功能有哪些?下载、安装并配置 Eclipse 的日志插件 Log4E。 4. 课外拓展 : 在 MyEclipse 安装目录中查找 JSP 文件 的默认 模板

(%myeclipse7.5%_ipse75020090612temp latesvelocitywelcome )。参照 Dreamweaver 新建 JSP 的样式修改这个模板。

小 结

本章主要介绍了 Eclipse的插件安装及其基本配置, 以及如何应用Eclipse开发 Java Web 应用程序。本章首先概略介绍了 Java 和 JSP 开发工具,并给出了本书选择策略;接着详细

介绍了 Eclipse及其常用插件的安装、配置;然后以Eclipse和 MyEclispe为平台,通过实例

介绍了如何开发Java 应用程序和 Web 项目,并对比分析了JavaWeb 项目的目录结构;最后

简要介绍了与 Eclipse相关的 JUnit、Ant 和 CVS 和系统日志等知识。

通过本章的学习,读者能够基本掌握 Eclipse 及其常用插件的安装和配置,能够应用 Eclipse和 MyEclipse创建 Web 项目并编写简单的JSP 页面。·37·

习 题

一、填空题 1. Eclipse安装目录中有两个核心目录:(

2. Eclipse的(

)和( )。 )插件提供了一套 UML 2.0 通用模型的实现。 3. Eclipse 的( )插件是一个经典的多语言文件编辑的插件,可以用来编辑本

地化的属性文件(localized properties files) 4. 配置文件( )中记录的是 Eclipse的启动参数。 5. Eclipse组件( )负责控制工作台上包括菜单、视图、透视图等等的操

作,它包含用于构建用户界面的附加工具箱JFace和SWT。 6. Eclipse的透视图定义了“工作台”窗口中( )的初始集和布局。 7. 在 Eclipse的“首选项”窗口中,配置 MyEclipse 的 Web 服务器时,都要将该服务器

设置为( )。 8. 通过 MyEclipse 创建的 Web 项目,主要是将(

到 Web 服务器中。

二、选择题 1. 免费的Java 开发工具有( ) D. JDeveloper or Pro A. NetBeans B. JBuilder C. Eclipse 2. Eclipse3.5 的版本代号为( ) )目录中的文件和目录部署

A. Callisto B. Europa C. Ganymede D. Galileo 3. Eclipse插件的安装方法包括( )等几种。 A. 拷贝安装 B. link安装 C. Update安装 D. provisioning platform(p2) 4. 在 Eclipse快捷方式的目标中添加参数(

个语言版本。 A. zh_CN B. ­nl zh_CN C. en_US 5. Eclipse以 JVM 为底层,包含了(

D. ­nl en_US )等几层。 ) ,可以使 Eclipse同时有中、英文两

A. Platform B. JDT C. PDE 6. 选择 Eclipse菜单 File的子菜单 ( ) , 可以把Eclipse还原成默认的透视图样式。 A. Switch Workspace B. Import C. Export D. Properties 7. 选择 Eclipse 菜单 Window 的子菜单( ) ,可以将已有的项目导入到自己的工

作空间中。 A. Customize Perspective B. Preferences C. Reset Perspective D. Open Perspective 8. 选择 Eclipse菜单 Help的子菜单( ) ,可以实现 Eclipse及其插件的升级 A. Soft Updates B. Help Content C. Welcome D. About Platform 9. 通过 MyEclipse创建的 Web 项目,默认的,在( )目录中放置Java 后台源

代码,而在( )目录中放置站点设计文件。 A. Source B. src t D. webRoot 10. 在 MyEclipse 的“Project Deployments” (项目部署)对话框中,可以实现项目的

( ) 。 A. 部署 二、判断题 1. 业内有一个说法:IDE 工具会加快高手的开发效率,也会使初学者如虎添翼。·38·

B. 移除 C. 重新部署 D. 浏览

2. 真正使 Eclipse成为一种强大的 IDE的原因在于它的插件机制。 3. 应用 Eclipse(classic版本)本身即可创建 Web 项目,而不需要相关插件。 4. MyEclipse堪称最强悍的 J2EE 开发插件,与 WTP 等插件一样,都是免费的。 5. 安装相关插件,应用 Eclipse可以编写 C#程序。 6. Eclipse的 Babel 项目提供了多语言(包括简体中文)支持,对于一个 Eclipse版本,

只能提供固定的语言包。 7. Eclipse 本身就是一系列的插件, 而且Eclipse团队是使用Eclipse进行Eclipse的开发。 8. Eclipse的工作台和工作区是汉语的不同翻译。 9. 在 MyEclipse中,Tomcat 等 Servlet 引擎需要一个完整的JDK。 10. 一个项目,一个目录,是项目开发的一个基本原则。 11. 通过 MyEclipse创建的 Web 项目,在部署前后,目录结构都是一致的。 12. JUnit 最佳实践的一条经验是:单元测试代码和被测试代码使用一样的包,不同的目

录。

三、上机操作题 1. 安装 Eclipse 及 Tomcat 启动插件、XMLEditor 插件、ResourceBundle Editor 插件、 Findbugs 插件、MyEclipse插件和中文包等常用插件。 2. 完成 Eclipse及 MyEclipse插件的配置。 3. 完成 3.4节示例:Java 项目HelloWorld。 4. 完成 3.4节示例:Web 项目 WebAppTest。 5. 使用 MyEclipse,创建 Web 项目 jspBook,开发第 2 章 2.3 节例程 (清单 2.1) ,

并部署测试成功。

第 3 章 集成开发工具 Eclipse∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1 3.1 Java 和JSP 开发工具概述∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1 3.1.1 Java 开发工具概述∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1 3.1.2 JCreator 简介∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1 3.1.3 本书选择策略∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙2 3.2 Eclipse及其常用插件的安装∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙2 3.2.1 Eclipse的获取和安装∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙3 3.2.2 Eclipse插件的安装方法∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙3 3.2.3 Eclipse的常用插件简介∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙6 3.2.4 Case:安装 Eclipse和 MyEclipse∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙7 3.2.5 Case:Eclipse的汉化∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙9 3.2.6 Eclipse项目及其平台架构∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙10 3.3 Eclipse及其常用插件的基本配置∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙13 3.3.1 Eclipse的界面和菜单∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙14 3.3.2 配置Java 和 Tomcat 插件∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙15 3.3.3 配置 MyEclipse插件 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙18 *3.3.4 配置工作空间及页面文件编码∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙20 3.4 Eclipse的基本应用∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙21·39·

3.4.1 Case:使用 Eclipse开发 Java 应用程序∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙21 3.4.2 Case:使用 MyEclipse开发 Web 应用程序∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙24 3.4.3 Web 项目目录结构初探∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙27 3.5 Eclipse与 JUnit、Ant 和 CVS 以及系统日志∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙28 3.5.1 一个令人焦头烂额的工作场景∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙28 3.5.2 Case:在Eclipse中应用 JUnit 进行单元测试∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙29 *3.5.3 Eclipse的资源构建和构建工具 Ant∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙32 *3.5.4 Eclipse的版本控制和 CVS∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙33 *3.5.5 log4j 日志器和 Eclipse日志插件 Log4E∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙35 3.6 单元实训与课外拓展∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙36 3.6.1 课堂课后讨论∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙36 3.6.2 上机实训练习∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙37 *3.6.3 课外拓展训练∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙37 小 结∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙37 习 题∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙38·40·


本文标签: 插件 项目 开发 安装 文件