Eclipse全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Eclipse的主要特点

1.2.1 开放的、可扩展的IDE

Eclipse是完全开放的,任何人都可以参与。参与的最简单方法是关注它的新闻组,选择一个感兴趣的技术领域,然后下载代码,自己做些实验,并在新闻组上回答一些问题。这样随着自己技术的提高,就可以向Bugzilla提交Bug和修复包,或去修复其他Bug。如果得到项目工作组的认可,便可以承担项目开发的一些义务,成为项目开发组的真正成员。此外还可以写一些文章发送到Eclipse组织,参加本地的Eclipse用户组等。

Eclipse的插件扩展机制是其最突出的特点和优势,它将Eclipse提升到更高的档次。可以利用Eclipse的插件开发环境(简称PDE)来开发自己的Eclipse插件,随意地扩展Eclipse的功能。

1.2.2 成功的图形界面API:SWT/JFace

虽然Java在许多领域都取得了骄人的成绩,但它在图形界面程序上却少有作为。究其原因,Java语言默认的图形界面开发包AWT/Swing难辞其咎,用它写成的界面,不但美观谈不上,而且速度也很慢。Eclipse的SWT开发包彻底改变了这一局面,SWT是Eclipse组织为了开发Eclipse集成开发环境所编写的一组底层图形界面API。它的SWT/JFace与AWT/Swing在实现上有很大的不同,AWT/Swing是模拟本机窗口组件,而SWT/JFace则是直接调用本机窗口组件,当本机没有直接调用时才模拟。

Eclipse的SWT/JFace开发包相对于Java的AWT/Swing开发包来说,显得更加稳定,这种稳定主要表现在两个方面:

(1)性能上的稳定。SWT最大化了操作系统的图形构件API,也就是说只要操作系统提供了相应的图形构件,那么SWT只是简单应用JNI技术调用它们,当操作系统中没有提供相应的构件时,SWT才自己去做一个模拟的实现。实际上,SWT的稳定性大多数时候取决于对应操作系统图形构件的稳定性。

(2)SWT API包中类、方法名称和结构的稳定。程序员不必担心由于Eclipse组织开发速度快(Eclipse IDE每天都会发布一个Nightly版本),而导致自己的程序代码要做太大的变化。从一个版本的SWT更新到另一个版本,通常只需要简单地将SWT包换掉就可以了。

再好的工具都不是完美的,Eclipse的SWT/JFace也有自身的缺点:它没有Java的跨操作系统的特性,也就是说,当不同的操作系统使用Eclipse时,都需要移植一次SWT/JFace。当然,现在几大主流操作系统平台上都已移植了SWT/JFace,所以这个问题也就不是很严重了。虽然SWT/JFace需要移植到每个操作系统平台,但基于SWT/JFace开发的Java程序并不需要移植,因为SWT/JFace已经为各操作系统编程提供了相同的接口。

1.2.3 强大的插件加载功能

对于Eclipse插件架构,一个很好的比喻是Web浏览器,它也有插件,Eclipse插件和浏览器相似,都是要解决扩展性问题。对于一个Web浏览器,如果你想既能浏览多媒体动画,又能浏览PDF文件,那么你就需要两个不同的插件,这样才能保证两种内容都能在Web浏览器中显示。Eclipse也一样,通过它的插件模式可以安装不同的插件来进行HTML的编辑、数据库的设计、Java开发、C++开发等等,所有这些开发工作完全在一个Eclipse安装平台上进行。而且Eclipse模型所能做的远超过这些,理解Eclipse插件的关键首先是要理解Eclipse扩展点,正是这个扩展点帮您在Eclipse中添加新功能。例如,在菜单中添加一项就是通过Eclipse扩展点实现的。

所以当Eclipse插件实现了一个扩展点,就创建了一个扩展。此外,扩展还可以创建自己的扩展点。这种插件模式的扩展和扩展点是递归的,而且被证明是非常灵活的。事实上,Eclipse本身是一个核心的运行时绑定了一些在插件之上构建的插件,换句话说,Eclipse本身就是一系列的插件。这样随着使用Eclipse构建Eclipse的经验累积,这种插件模式就变得日趋成熟。

知识:什么是插件?

插件的英文名称为Plug-in,是一种遵循一定规范的应用程序接口编写出来的程序,有时也称为扩展,与大家平时所说的组件有所不同。组件一般是指程序开发时所使用的控件、对象,而插件是属于程序接口的程序。借助于在原有开发环境中安装各种插件,可以增强并扩展原有软件的功能。

插件的特点有:

(1)插件是Eclipse平台下最小的可单独开发和发布的功能单元。

(2)插件一般都是用Java编写一个JAR文件,里面包括了Java代码、一些只读文件和其他资源,如Web模板、消息目录和本地代码库等。有的插件甚至没有代码,例如提供HTML格式在线帮助文档的插件。

(3)每个插件都有一个声明自身与其他插件的关联关系的清单文件。关联模型很简单:一个插件声明任意多个命名的扩展点,同时声明任意多个对其他插件的扩展点。

(4)插件的扩展点可以被其他插件扩展。例如,工作台插件声明了一个扩展点用于用户首选项,任意插件通过定义该扩展点的扩展来添加自己的用户首选项。一个扩展点可能有一个对应的应用程序接口,其他插件通过扩展该扩展点来实现这个接口。所有的插件都可以定义新扩展点并为其他插件提供新的应用程序接口。

1.2.4 充分的中文帮助文件

Eclipse的帮助文档非常全面,在下载了Eclipse的多国语言翻译包之后,所有的菜单和联机帮助都已经翻译成中文了,使用起来非常方便。如图1-1所示为安装多国语言包后Eclipse的中文帮助窗口。

图1-1 Eclipse的中文帮助窗口