Eclipse Ganymede:深入 JDT(Java Development Tools)

  • Alex Blewitt
  • Ryan Slobojan
  • 宋玮

2008 年 6 月 27 日

话题:Java语言 & 开发

作为 6 月 25 日发布的Eclipse Ganymede的一部分,Infoq 推出了一系列 Eclipse 子项目的相关报道。今天,我们将探讨的子项目是JDT(Java Development Tools),目前处于 3.4 版。Infoq 采访了 Eclipse 项目的领导人Philippe MuletJDT UI子项目的领导人 Martin Aeschlimann,以了解 Ganymede 中有哪些值得我们期待的东西。

JDT 3.4 中有几个新特性:

  • 强化的编译器——编译工作现在可以在多个核上并行展开,而不是只能使用一个,编译器问题探测得到了改进,支持 CLDC 1.1 类文件输出并增加了工作区外的类文件夹。
  • 新的重构——有一个新的提取类重构功能,它把一组变量提取到一个类中,并且保留了成员访问函数。另外,对于可能导致破坏二进制类引用的重构,现在将会显示一个警告,这样就可以防止意外重构影响了其他客户端可能依赖的类。
  • 升级的 Java 编辑器——在新增的特性中包括了显示当前条目路径的 Breadcrumbs、针对 Java problem 和 Javadoc 的表现力更丰富的悬浮窗口、几个内容帮助的改进、新的快速帮助和一套 SWT 窗口部件模板。
  • 改进的 Java Debugger——在这一版中新出现的特性包括:嵌入到变量悬浮窗口中的对象查看器、执行环境描述文件、将启动配置作为搜索结果的一部分、等候远程调试连接的功能等。
  • 强化的其它 UI——JUnit 测试执行时间、针对域和类型的调用层次、一个可运行的 JAR 输出向导、更多的 Java 搜索选项,这些现在都可供使用了。

在 6 月 25 日官方 Ganymede 发布之后不久,从新特性和值得关注的页面可以得到全部细节信息。

Mulet 对多核编译做出了更详细的解释,他说尽管每个项目是分别编译的,但是将项目编译负载铺开到多个核上导致在多核 CPU 上进行编译的速度提高了 10% 到 30%。Mulet 还小心谨慎的指出,该百分比是临时性的,公共基准数据很快就会公布。另一个需要指出的是,新版 Java 对提高速度的贡献更大——Java 1.4 速度提升了近 10%,而 Java 6 速度提升了近 30%。最终,磁盘速度成了编译性能的关键因素——因为编译过程本身就是一个受 I/O 限制的过程,磁盘介质越快编译速度就越快。

尽管 Eclipse 被认为主要是个 Java IDE,JDT 和 JDT 团队所引领的许多改进也已经被推广到一般类库中,比如语言工具包(Language Toolkit——LTK)和平台文本(Platform Text),它们被其他基于文本的编辑器(如CDT)所采用,以提供常用的重构、搜索、调试和比较功能。例如,这些类库已经被用来提供可以有后续链接的富 Javadoc 悬浮文本。另外,在 3.5 中可能提供的一个增强功能是预处理支持,按照 Mulet 的说法,它将简化使用范围的集成。

Eclipse Compiler for Java(ECJ)是在 JDT 之外已被采用的另一个组件,Mulet 说他所了解的使用了 ECJ 的项目包括GNU Compiler for Java(GCJ)、Apache Harmony 的 javacApache Tomcat JSPAspectJ编译器。Mulet 补充说他相信这只是部分列表,而且他很想知道还有哪些人在使用 ECJ 作为其工作的一部分。

至于将来的计划,Mulet 说道:

我们现在正在考虑,任何建议都是受欢迎的。或许主题(并非承诺)应该着眼于 Java 7、Java 编辑器嵌套、预处理、每个源文件夹的设置 / 类路径、与 API 工具更好的集成、构建路径上链状的 JAR、构建路径上嵌套的 JAR、提供编译器错 误解释、简化开箱即用的体验(如,默认情况下兼容性和 JRE 应该成对出现)等等……

当问到 JDT 将如何集成到 e4 中,或者会受到 e4 怎样的影响时,Mulet 说道:

e4 的目的是为了使 Eclipse 成为一个更好的平台、在其上的构建应用应该更加简单。一旦 e4 成熟 了,JDT 很可能会转移到其上,类似于我们 Eclipse 1.0 上整个从头开始的做法。到那时,开发两种风格的 JDT 将是非常有意思的事情,因为 3.x 短期内不会立即消失,所以 3.x 中的 JDT 也必须随 Java 一起保持更新……到那时,JDT 可能会对从 Java 到脚本语言的交叉编译提供帮助(就像现在把 Java 翻译成 ActionScript 一样)。也可能会有 些贴近语言工具的项目出现,比如多语言编辑器。

查看英文原文:Eclipse Ganymede: An in-depth look at JDT (Java Development Tools)

Java语言 & 开发