分享
 
 
 

Eclipse 3.2 Java开发工具的新特性

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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)就可以把它绑定到它们自己的软件中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有