Eclipse 3.2 Java开发工具的新特性

2008-02-23 08:12:41来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  Eclipse是一个流行的针对Java编程的集成开发环境(IDE)。它还可以用作编写其他语言(比如C 和Ruby)的环境,合并各种种类工具的框架,以及创建桌面或服务器应用程序的富客户端平台。如今,Eclipse开源社区拥有数十个项目,其范围从商务智能到社会网络等各个方面。Eclipse同时也是管理这些项目的非赢利性组织的名称。(而且,尽管我相当肯定它并非地板蜡,还是存在Eclipse汽车、足球队和口香糖。)

  Eclipse version 3.2在Eclipse Callisto 发行历史上具有里程碑的意义:于2006年6月30日同时发布了10个Eclipse项目。本文将集中探讨Eclipse IDE,特别是其Java 开发工具 (JDT)。

  JDT构成

  JDT的历史可以追溯到1996年左右使用Smalltalk编写的Visual Age for Java(VAJ)。在VAJ中,一切内容都会在输入时进行编译,并在内存中完全解析。这种设计的可伸缩性不是很好,难于扩展,重建文件也有一定的困难。

  1999年,该IDE团队开始开发Visual Age Micro Edition(VAME)。这个工具完全以Java编写,并使用标准Widget 工具箱(SWT)来实现其用户接口。当时的VAME将目标定为嵌入式空间中的开发与应用。为此,它使用了标准的Java VM,并把工作区保存在文件系统中。然而,文件和文件夹名称都是一些无法读取的UUID。

  与VAJ提供的编译器相比,VAME的增量式编译器快了近10倍。该模型是基于状态构建的(与目前的Eclipse相反,Eclipse是基于源代码的)。VAME有自己的存储库系统Rapier,并且可以使用插件对其进行扩展。

  VAME实际上并没有在社区中流行开来,但是它包含了大量优秀的思路,开发人员在接下来的Eclipse项目中延用了这些思路。2001年,Eclipse 1.0发布。它被描述为“一种通用的IDE,并不特别针对于什么内容”。一开始,Eclipse和JDT都被构建为其他开发工具使用的平台。工作区保存在磁盘上,并对其他工作区开放。Eclipse 1.0集成了CVS,而没有使用专用的存储库。

  Eclipse与其先行者之间有一个重要的区别:它是开源的。其用户社区以爆炸式的速度增长,并可独立维持。Eclipse 3.2的大部分新的和改进功能都源自eclipse用户提出的增强要求。自从3.1版本以来,已经有超过30,000个修复和增强的要求得到了解决。由于要把全部这些要求都过一遍需要很长时间,下面我们就重点讲述其中一些对于大多数Java开发人员特别重要的要求。

  Eclipse编译器

  JDT更为强大的功能之一即是它内置的增量式Java编译器,这个编译器与javac完全兼容。尽管可以让Eclipse使用Ant和javac,甚至可以让问题标志显示在IDE中(此为3.2版本中的新功能),但是Eclipse编译器可以提供更好的诊断技术和更快的周转周期。

  JDT编译器原本是为VAME而编写的,后针对Eclipse进行了修改。这个编译器构建在开发人员称之为“编译的3大规则”(模仿了阿西莫夫的机器人3大定律)之上:

  ·正确性:编译器不能伤害源程序。

  ·高效性:编译器必须快速,除非速度与规则1发生冲突。

  ·友好性:编译器必须帮助用户纠正编程错误,只要这类帮助不与规则1和规则2冲突。

  ·正确性:设计Java编译器时,不仅必须遵循相应的规范,而且必须领会该规范的“精神”,仅仅考虑正确性是不行的。因此,JDT开发人员多年来辛勤工作,以便与其他编译器的功能保持一致,其中包括Sun的编译器。在Eclipse 3.2中,仅针对正确性的检查就超过了15,000次单元测试(相比之下,VAJ中根本没有进行单元测试)。

  ·高效性:数千个项目和数百万行代码往往是很平常的事情。这意味着要解决很多问题,例如内存使用必须是可预测的并加以分级。Eclipse 3.2继续对此进行积极的优化。例如,开发人员可以重写一个流程图以使用位操作,结果位操作的时间消耗从20%降到了4%。

  ·友好性:报告错误是一门艺术。仅仅使用行号还不够。二级错误被最小化。例如,如果一个文件内漏掉了一个分号,它不会影响到与它相关的其他文件。改进后的静态分析功能有助于发现错误模式。另外,Eclipse还可以对Javadoc进行正确性检查。

  就3.2版本来说,Eclipse编译器是与Java SE 6.0兼容的。没错,Eclipse支持Java 6类和StackMapTable属性(甚至在Java 6发布之前)。另外,该编译器还提供大量新的诊断功能,有助于在运行代码之前发现其中的错误。与3.2版本的编译器(提供了45种诊断功能)相比,VAJ仅提供了3类诊断功能。最新的一些诊断功能包括对以下内容的检测:

  ·使用显然是null的变量。

  ·不必要的null检查。

  ·对方法参数的偶然赋值。

  ·通过让之前的大小写状态失效的方式,切换大小写输入。

  ·使用非一般(原始)类型。

  ·未使用的标签。

  ·不必要的-NLS

  在默认情况下,大多数这些功能都处于关闭状态。当然,还可以使用注释把它们设置为关闭状态。

  从3.2版本开始,如果想在Eclipse外部使用Eclipse编译器,您可以单独下载该版本。它的命令行参数与javac兼容,并且下载文件大小仅有1MB左右。既然Eclipse编译器是开源的,所以许多其它项目(例如Apache Tomcat)就可以把它绑定到它们自己的软件中。

  编辑

  任何开发环境的最基本特征首先体现在编辑器上。您会在这方面花上大部分的时间;因此,编辑器必须是舒适、不唐突且功能强大的。自从Emacs以来,每个编辑器都至少包含一些常见源程序语言的基础知识,以便能够提供语法高亮显示功能。JDT使用它的Java模型来提供语法高亮显示功能;例如,它十分清楚类与实例变量之间的区别,因此能以不同的颜色来标志它们。它甚至能够根据源码注释来指出您调用的一个方法是否是过时的(或不推荐使用),并且针对这一方法调用绘制一条直线以强调这部分代码值得注意。

  在Java编辑器中,更有用的命令之一是Ctrl-Space (内容辅助)。不记得一个对象的方法有哪些或如何拼写一个类名吗?只要按下Ctrl-Space, Eclipse将在任何指定点提供一个有效的可能性列表。Eclipse 3.2继续改进这项功能。例如,输入长标识符,例如“LongJavaName”时,现在您可以输入“LJN”并且按下Ctrl-Space, Eclipse就会知道您的意思。这称作“CamelCase完成”功能。进行类型查找时,它也能发挥作用(Ctrl-Shift-T)。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:实现基于Spring框架应用的权限控制系统

下一篇:使用Eclipse Callisto分析应用程序