使用 Eclipse 远程调试 Java 应用程序
水恩
2023-12-01
利用 Eclipse IDE 的强大功能远程调试 Java 应用程序
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-ganymede/
文档选项
打印本页
将此页作为电子邮件发送
英文原文
级别: 中级
Charles Lu, 软件工程师, IBM
2009 年 1 月 12 日
在本地计算机上调试 Java™ 应用程序并不是惟一的选择。学习如何使用构成远程调试的不同连接类型进行远程调试。本文概述了设置远程应用程序调试的特性和示例。
远程调试对应用程序开发十分有用。例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序。其他情况包括:运行在内存小或 CUP 性能低的设备上的 Java 应用程序(比如移动设备),或者开发人员想要将应用程序和开发环境分开,等等。
先决条件
启动配置类型
启动配置 保存一组用于启动程序的属性。启动配置类型是一种可以在 Eclipse 平台上启动的独特程序。
如果您还没安装该程序,请下载 Eclipse V3.4(Ganymede)。在 Ganymede 中,套接字(socket)监听连接器被添加到 Remote Java Application 启动配置类型。Eclipse 最新的套接字监听连接器允许您打开 Java 调试器,它能够监听特定套接字上的连接。可以从命令行选项打开被调试的程序,并将其连接到调试器。在 Ganymede 发布之前,仅有一个连接套接字的连接器,被调试的程序所在的机器必须是一个与调试器相连的调试主机。由于受到内存和 CPU 不足的限制,要想让移动设备充当主机是不现实的。
为了进行远程调试,必须使用 Java Virtual Machine (JVM) V5.0 或更新版本,比如 IBM® J9 或 Sun Microsystem 的 Java SE Development Kit(JDK)。本文主要讨论远程调试,而不是每个 Eclipse 调试特性的细节。查看 参考资料 获得更多关于使用 Eclipse 进行调试的信息,并且可以找到上面提到的软件。
JPDA 简介
常用缩写词
•JDI — Java 调试接口(Java Debug Interface)
•JDT — Java 开发工具(Java Development Tools)
•JDWP — Java 调试网络协议(Java Debug Wire Protocol)
•JPDA — Java 平台调试器架构(Java Platform Debugger Architecture)
•JVM — Java 虚拟机(Java Virtual Machine)
•JVMDI — JVM 调试接口(JVM Debug Interface)
•JVMTI — JVM 工具接口(JVM Tool Interface)
•VM — 虚拟机(Virtual Machine)
Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序。JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI)、一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成。它的设计目的是让调试人员在任何环境中都可以进行调试。JPDA 不仅能够用于桌面系统,而且能够在嵌入式系统上很好地工作。
JVM Tool Interface (JVMTI) 规定必须为调试提供 VM(编辑注:从 Java V5 开始,将用 JVMTI 代替 Java V1.4 中的 JVMDI)。Java Debug Wire Protocol (JDWP) 描述调试信息的格式,以及在被调试的进程和调试器前端之间传输的请求,调试器前端实现 JDI,比如 Eclipse、Borland JBuilder 等。根据 Sun 的 JPDA 规范,被调试的程序常常称为 debuggee。JDI 是一个高级的接口,它定义用于远程调试的信息和请求。下面给出了调试器的架构。
清单 1. Java 平台调试器架构
Components Debugger Interfaces
/ |--------------|
/ | VM |
debuggee -----( |--------------| <---- JVMTI - Java VM Tool Interface
\ | back-end |
\ |--------------|
/ |
comm channel --( | <------------ JDWP - Java Debug Wire Protocol
\ |
/ |--------------|
/ | front-end |
debugger -----( |--------------| <---- JDI - Java Debug Interface
\ | UI |
\ |--------------|
因此,任何第三方工具和基于 JPDA 的 VM 应该都能协调工作。通过这个客户机-服务器架构,您可以从运行该平台的本地工作站调试 Java 程序,甚至还可以通过网络进行远程调试。
在讨论调试场景之前,我们先了解 JPDA 规范中的两个术语:连接器和传输。连接器是一个 JDI 抽象,用来在调试器应用程序和目标 VM 之间建立连接。传输定义应用程序如何进行访问,以及数据如何在前端和后端之间传输。连接器 “映射” 到可用的传输类型和连接模式。在 Sun 的 JPDA 参考实现中,为 Microsoft® Windows® 提供了两个传输机制:套接字传输和共享内存传输。可用的连接器:
•连接套接字连接器
•连接共享内存连接器
•监听套接字连接器
•监听共享内存连接器
•启动命令行连接器
在调试器应用程序和目标 VM 之间建立连接时,有一端将用作服务器并监听连接。随后,另一端将连接到监听器并建立一个连接。通过连接,调试器应用程序或目标 VM 都可以充当服务器。进程之间的通信可以在同一个机器或不同的机器上运行。
要远程调试 Java 程序,难点不是在调试器的前端,而是远程 Java 后端。不幸的是,Eclipse 帮助系统中为这方面提供的信息并不多。事实上,JDI 和 JVMTI 是分别由 Eclipse 和 Java 运行时环境实现的。我们仅需要考虑 JDMP,因为它包含与 JVMTI 和 JDI 进行通信所需的信息。JDWP 包含许多参数,用于为远程 Java 应用程序调用所需的程序。以下是本文用到的一些参数。
-Xdebug
启用调试特性。
-Xrunjdwp:<sub-options>
在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。
从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。
transport
这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
server
如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
address
这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
suspend
如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
要获得每个调试设置的详细解释,请参考 JPDA 文档(参见 参考资料)。
清单 2 是一个示例,显示如何在调试模式下启动 VM 并监听端口 8765 的套接字连接。
清单 2. 作为调试服务器的目标 VM
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765
清单 3 显示如何使用位于 8000 端口的主机 127.0.0.1 上的套接字连接运行中的调试器应用程序。
清单 3. 作为调试客户机的目标 VM
-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000
回页首
Eclipse 中的远程调试特性
Eclipse 是一个图形化 Java 调试器前端。JDI 在 org.eclipse.jdt.debug 包中实现。本文不详细讨论 JDI 实现。参见 参考资料 获得关于 Eclipse JDT 和 Java JDI 技术的信息。
我们首先应该知道要使用哪个 Eclipse 连接器。要了解 Eclipse 提供的远程连接类型,您可以转到 Eclipse 菜单并选择 Run > Debug Configurations...,在 Remote Java Application 中添加一个启动配置,然后从下拉列表中选择连接器。在 Ganymede 中共有两个连接器:
•Socket Attach
•Socket Listen
对于监听套接字的连接器,Eclipse VM 将是与远程 Java 应用程序连接的主机。对于连接套接字的连接器,目标 VM 将作为主机。这两种连接器对应用程序调试没有影响,用户可以任意选择。但根据经验,需要使用速度更快、更强大的计算机作为 VM 调试主机,因为需要计算的资源很多。
在调试 Java 应用程序之前,需要确保已经为远程应用程序启用所有调试选项。如果选项信息不可用,您将收到一个错误信息,比如 “Debug information is not available” 或 “Unable to install breakpoint due to missing line number”。您可以通过更改 Eclipse 菜单上的 Window > Preferences > Java > Compiler 来修改设置。
图 1. Eclipse 中的调试选项
回页首
远程调试应用程序
现在,我们已经准备好远程调试应用程序。我们分步执行:
1. 使用简单类创建一个 Java 项目
我们为调试创建一个简单类。清单 4 给出了示例代码。
清单 4. 调试示例代码
package com.ibm.developerWorks.debugtest;
public class test {
public static void main(String[] args) {
System.out.println("This is a test.");
}
}
2. 设置一个断点
在代码中设置一个断点。在这个例子中,我们在 System.out.println("This is a test."); 这行中设置断点。
图 2. 在 Eclipse 中设置断点
3. 从本地调试应用程序
在调试应用程序之前,确保已经为项目启用图 1 中描述的调试选项。从本地调试应用程序是没有必要的,但是这可以确保是否所有调试信息都可用。右键单击 Java 项目,并选择 Debug As,然后选择 Java Application(参见图 3)。如果应用程序在断点处停止执行,则表明调试信息正确显示。这时,可以继续使用这些调试特性,比如显示调试堆栈、变量或断点管理等等。
图 3. 从本地调试应用程序
4. 导出 Java 项目
我们将使用这个应用程序作为调试目标。右键单击 Java 项目,选择 Export,然后选择 Java,最后选择 JAR file 或 Runnable JAR file 导出项目。将在指定的位置生成 JAR 文件。注意,如果 Java 源代码与目标应用程序不匹配,调试特性将不能正常工作。
5. 手动运行 Java 应用程序
打开控制台手动启动应用程序,确保正确配置了 Java 运行时环境。
清单 5. 调用 Java 应用程序的示例
java -jar test.jar
6. 远程调试应用程序
将 JAR 文件复制到远程计算机或同一台计算机上的适当位置,调用调试服务器,然后为它添加一个客户机。简单的 Java 应用程序就可以充当调试服务器或客户机。您可以在 Eclipse 中选择 Socket Attach 或 Socket Listen 连接类型,这取决于特定的配置。接下来的两个小节将学习如何将应用程序作为服务器或客户机运行。
作为调试服务器的目标 VM
下面这个示例远程调用 Java 应用程序作为调试服务器,并在端口 8000 监听套接字连接。目标 VM 将暂停,直到调试器连接。
清单 6. Eclipse 连接套接字模式下的 VM 调用示例
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar
test.jar
使用远程启动配置启动 Eclipse,并指定远程应用程序的目标 VM 地址。为此,单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击 Remote Java Application。从最新创建的启动配置中为目标应用程序指定 IP 和端口。为了在同一台机器上运行远程应用程序,仅需将主机 IP 指定为 localhost 或 127.0.0.1。
图 4. 连接套接字连接的配置
选择 Allow termination of remote VM 选项终止在应用程序调试期间连接的 VM。
图 5. Eclipse 中的 Terminate 按钮
作为调试客户机的目标 VM
第二个示例使用一个简单的 Java 应用程序作为调试客户机,并且调试器前端作为调试服务器。Eclipse 使用套接字监听模式连接类型进行监听。必须先启动调试前端来监听特定的端口。图 6 给出一个用于设置监听的示例配置。
图 6. 监听套接字连接的配置
单击 Eclipse Debug 按钮,状态栏将显示消息 “waiting for vm to connect at port 8000...”。看到这个消息后,启动远程应用程序。清单 7 显示了如何将 Java 应用程序作为调试客户机并调用它,然后使用端口 8000 上的主机 127.0.0.1 的套接字将其连接到一个正在运行的调试器应用程序。
清单 7. Eclipse 监听套接字连接模式中的 VM 调用示例
java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y
-jar test.jar
如果一切进行顺利,将会显示一个调试透视图帮助调试应用程序,并且远程 Java 应用程序将正常停止。这类似于步骤 3 中的本地调试(参见图 3)。在这里,您可以使用标准的调试特性,比如设置断点和值、单步执行等。
回页首
结束语
本文演示如何使用 Eclipse 内置的远程 Java 应用程序配置类型对应用程序执行远程调试。介绍了如何设置 Java 应用程序以调用远程调试,并帮助您理解 Eclipse 提供的连接器。最后,您还学习了如何将这些技术应用到项目中。
参考资料
学习
•您可以参阅本文在 developerWorks 全球网站上的 英文原文。
•“Eclipse Ganymede 先睹为快” 概述了几个 Ganymede 项目,并提供相关的资源。
•要初步了解如何在 Eclipse 平台上进行调试,请参阅 “使用 Eclipse 平台进行调试 -- 使用 Eclipse 平台调试您的软件项目”。
•查看 Eclipse Debugging Resources 丰富您的 Eclipse 调试知识。
•更多地了解 Sun Microsystems 提供的 Java Platform Debugger Architecture。
•阅读 Java Platform Debugger Architecture 文档 更多地了解 JPDA。
•阅读 Java Debug Interface documentation 更多地了解 JDI。
Eclipse Ganymede 先睹为快
了解 24 个项目发行系列中的新增功能
文档选项
打印本页
将此页作为电子邮件发送
英文原文
级别: 中级
Chris Aniszczyk (zx@code9.com), 软件工程师, Code 9
2008 年 7 月 04 日
Eclipse Ganymede 发行的 24 个项目将展示在 Eclipse 生态系统内正在发生的多样性和创新。本文将介绍几个 Ganymede 项目,并将介绍查找更多信息的资源。
简单地说,Ganymede 就是指同步发行的 24 个主要的 Eclipse 项目。
成为 Eclipse 的伙伴
您是否希望更加快速地访问 Ganymede 发行版?您是否曾经希望回馈 Eclipse,但是不知道怎样做?Eclipse 发起了名为 “成为 Eclipse 的伙伴” 的新项目,该项目将使您可以回馈 Eclipse 社区。通过成为 Eclipse 的伙伴,您将帮助 Eclipse Foundation 为 Eclipse 社区提供服务,例如为用户和提交者提供更多带宽,购买附加服务器来托管 Eclipse 项目以及赞助 Eclipse 社区活动。
关于 Ganymede 和 Eclipse 发行系列,通常必须注意的是即使它是同时发行,也不意味着这些项目是一体的。每个项目仍然是独立的 开源项目,有独立的项目领导层、提交者并按照自己的开发计划运作。最终,Ganymede 将通过提供更加透明和可预测的开发周期来提高在 Eclipse 项目之上工作的开发人员的生产力。
获得 Ganymede
在详细讨论各个项目之前,让我们先来完成在计算机中安装 Ganymede 的快速实践练习。
获得 Ganymede 有两种主要方法,采用哪种方法取决于您的偏好。第一种方法(建议使用)是只获取相关软件包。获得 Ganymede 的另一种方法是使用更新站点。
Ganymede 软件包
推荐的 Ganymede 获取方法是访问 Eclipse Ganymede Packages 站点。软件包站点包含专门针对您的使用需求预打包的 Ganymede 版本。
图 1. Ganymede 软件包
用法数据收集器
每个 Ganymede 软件包都包括 用法数据收集器(Usage Data Collector,UDC)。UDC 将收集每个人如何使用 Eclipse 的信息。这些信息将被定期上传到 Eclipse Foundation 所托管的服务器中。目的在于使用这些数据帮助提交者和组织更好地了解开发人员如何使用 Eclipse。注意,此功能默认情况下是关闭的并且是可选功能。如果您对此功能有兴趣,请查看 使用条款。最后,这些数据可以帮助 Eclipse 提交者基于行为数据执行优化项目用户界面等操作。
例如,如果您是 Java™ 开发人员,则需要获取适用于 Java 开发人员的软件包。如果您是 C/C++ 开发人员,则获取 C/C++ 软件包,以此类推。
Ganymede 更新站点
要使用更新站点获得 Ganymede,请下载 Eclipse V3.4 SDK。完成后,您可以启动 Eclipse 并通过 Help > Software Updates 访问软件更新机制(参见图 1)。如果还没有 Ganymede Discovery Site,请输入正确的 Ganymede 更新站点信息。连接到 Ganymede 更新站点后,您应当会看到 Ganymede 发行系列中的可用功能列表。就这样简单!连接后,您就可以选择需要安装到您的 Eclipse 中的功能。
图 2. 软件更新
通过这两种简单方法,您已经准备好充分利用 Ganymede 发行版。
回页首
项目
Eclipse 生态环境是一个大型社区并且有时令人生畏。Eclipse 中正在开发的项目超过 90 个,而 Ganymede 发行版只是一个缩影。Ganymede 发行系列旨在展示 Eclipse 技术,还帮助采用者把 Eclipse 技术集成到他们的产品中。有关 Ganymede 项目的更多信息,请参阅以下链接。否则,请继续查阅下一节以查看 Ganymede 展示示例。
表 1. Ganymede 发行系列项目
项目 大纲 Web 站点
Business Intelligence and Reporting Tools (BIRT) 生成报表 http://www.eclipse.org/birt
Buckminster 简化部署 http://www.eclipse.org/buckminster
C/C++ Development Tools (CDT) 编写 C/C++ 代码 http://www.eclipse.org/cdt
Dynamic Languages Toolkit (DLTK) 编写 Perl 和 Ruby 代码 http://www.eclipse.org/dltk
Device Software Development Platform — Device Debugging (DSDP-DD) 调试嵌入式设备 http://www.eclipse.org/dsdp/dd
Device Software Development Platform — Native Application Builder (DSDP-NAB) 构建设备 GUI http://www.eclipse.org/dsdp/nab
Device Software Development Platform — Target Management (DSDP-TM) 远程浏览器(SSH) http://www.eclipse.org/dsdp/tm
Eclipse Data Tools Platform (DTP) 管理以数据为中心的系统 http://www.eclipse.org/datatools/
Eclipse Communications Framework (ECF) 在 Eclipse 中交谈 http://www.eclipse.org/ecf
Eclipse Project 用于构建 Eclipse 的工具,包括 Platform、JDT、PDE 和 Equinox http://www.eclipse.org/eclipse
Eclipse Modeling Framework (EMF) 开发模型 http://www.eclipse.org/emf
Eclipse Modeling Framework Technologies (EMFT) 用于辅助模型开发的实用程序 http://www.eclipse.org/emft
Eclipse Packaging Project (EPP) 构建安装程序 http://www.eclipse.org/epp
Graphical Editing Framework (GEF) 开发图形应用程序 http://www.eclipse.org/gef
Graphical Modeling Framework (GMF) 开发图形编辑器 http://www.eclipse.org/gmf
Model Development Tools (MDT) 用于辅助模型开发的实用程序 http://www.eclipse.org/mdt
M2M 用于模型转换语言的框架 http://www.eclipse.org/m2m/
Model To Text (M2T) 用于辅助模型开发的实用程序 http://www.eclipse.org/m2t
Mylyn 关注基于任务的开发 http://www.eclipse.org/mylyn
Rich Ajax Platform (RAP) 开发基于 Eclipse 的 Web 2.0 应用程序 http://www.eclipse.org/rap
SOA Tools Platform (STP) 面向 SOA 的工具 http://www.eclipse.org/stp
Subversive 支持子版本 http://www.eclipse.org/subversive
Test and Performance Tools Platform (TPTP) 分析程序(Profiler) http://www.eclipse.org/tptp
Web Tools Platform (WTP) 编写基于 Web 的应用程序 http://www.eclipse.org/webtools
回页首
展示示例
Eclipse Project (SDK)
Eclipse Project 通常也称为 Eclipse SDK,它是 Eclipse 的核心项目。该项目包含四个子项目:Platform、Plug-in Development Environment (PDE)、Java Development Tools (JDT) 和 Equinox。Platform 项目包含构建基于 Eclipse 的应用程序所需的常用服务和核心服务集。PDE 只包含开发人员在 Eclipse 中构建插件时需要使用的插件开发工具。JDT 代表 Eclipse 中的 Java 开发工具集。最后,Equinox 代表 Eclipse 的核心运行环境,该环境允许插件很好地相互共存。
Ganymede 的新增功能有哪些?Eclipse 项目中到处都有许多新的增强,但是要在这里列出这些新的增强将占用大量空间。因此为了简短起见,本文列出了我最喜欢的三个增强,然后讨论了 Ganymede 中的一些亮点。
我喜欢的第一个增强来自 Java Development Tools (JDT)。正如您所知,计算世界正在改变,并且我们看到越来越多的计算机采用多个内核(多核)。JDT 已在 V3.4 中添加了多核支持以确保 Eclipse 将来尽可能快地编译 Java 代码。
在插件开发中,我最喜欢的新功能是 Plug-in Spy。使用 Plug-in Spy 可以在 Eclipse 内部查看,方法为简单选择一些感兴趣的内容,并按 Alt+Shift+F1。完成后,Plug-in Spy 将显示一个弹出窗口,其中包含诸如当前选择类及来自哪个插件之类的信息。对于寻求将插件集成到 Eclipse 用户界面中的插件开发人员,这些信息十分有用。
最后,Equinox 项目发布了一个称为 p2 预置的功能。p2 取代旧更新管理器成为管理 Eclipse 安装、搜索更新和安装新功能的机制。p2 可以解决人们在更新和搜索插件时遇到的许多问题。
Business Intelligence and Reporting Tools (BIRT)
BIRT 项目致力于引入集成到应用程序中的基于 Eclipse 的报表系统以生成引人注目的报表。BIRT 将提供核心报表功能,例如图形报表设计器、数据访问和脚本支持。
“使用 BIRT V2.3 的 Ganymede 发行版,可以获得许多有助于创建和测试报表设计的新功能”,BIRT 拥护者兼 Actuate 员工 Jason Weathersby 说,“最值得注意的是新 JavaScript 调试器,它将允许在调试透视图内调试 BIRT 事件处理程序。此外,还改进了 JavaScript 编辑器,并且增强了常见错误报告功能。BIRT V2.3 还向交叉选项卡(Cross-tab)和图表元素添加了很多增强功能。交叉选项卡元素现在支持脚本、多次测量和派生测量、按照维度或测量过滤、在水平方向分页,并且可以将测量数据显示为文本或者图表项。现在通过使用新的多视图报表项功能可以直接从表或者交叉选项卡创建图表。”
并且除了使用数据集中的数据之外,图表现在还可以使用来自现有报表项或者数据集的数据。另一项需要注意的功能是引入 Data Tools Platform SQL Query Builder 原型,这将允许图形化构建查询。
图 3. BIRT 屏幕快照
C/C++ Development Tools (CDT)
CDT 项目旨在向 Eclipse 生态环境引入全能的 C/C++ 开发环境,这类似于 JDT 为 Java 开发所做的贡献。
“CDT 将继续致力于成为领先的面向技术和嵌入式软件开发的 C/C++ IDE。它现在被封装到所有主要 Linux® 发行版中并且嵌入式平台供应商几乎全都采用了 CDT。CDT 用户和贡献者社区继续作为强大的技术支持,使 CDT 的高级功能集更加成熟”,CDT 项目主管并在最近刚刚加入 Wind River Systems 的 Doug Schaefer 说。
Schaefer 说:“CDT V5.0 的焦点一直主要集中在改进添加到最新几个版本中的功能。CDT 的源代码索引程序现在可以跟踪宏,并且它对模板和其他 C++ 功能的支持将持续改进。这将使编辑器功能(例如内容帮助和打开声明)可以找到先前版本中可能已经有的更多信息”。
Schaefer 说 CDT V5.0 还将引入新的重构框架和一些新的重构以补充 CDT 的重命名重构。对于我们来说,这实在是一个激动人心的新领域,它将展示 CDT 的内置解析器和编辑器框架的威力,并将利用大量为 JDT 提供了丰富重构功能的相同技术。结合使用新的文件级代码模板和 Visual Studio 关键字绑定,即使对于最常见的 C/C++ IDE,CDT 也正在成为十分有吸引力的选择。
图 4. CDT 屏幕快照
Dynamic Language ToolKit (DLTK)
DLTK 是适合所有依赖动态语言(如 Ruby 和 Perl)的人使用的工具。DLTK 包含一组可扩展框架,旨在降低为动态语言(PHP、Perl 和 Ruby)构建全功能开发环境的复杂度。而且,除了作为框架集之外,DLTK 还提供可供立即使用的典型 Tcl、Ruby 和 Python 开发环境。
“对于 Ganymede 发行版,DLTK 使用可以在 Java Development Tools 中找到的一组功能改进了 TCL 和 Ruby IDE”,DLTK 项目副主管兼 Xored 雇员 Andrei Sobolev 说,“从具有代码帮助和代码要点、类浏览器及代码浏览功能(如 Open Type 和 Go to 声明)、强大搜索功能(如查找引用)的代码编辑器开始,一直到交互式控制台和集成调试器,这些功能将给 Ganymede 带来一个强大的 Ruby 和 TCL 编程语言开发环境。使用 Ganymede,DLTK 可以提供对各种面向 TCL 对象的扩展的支持,借助 DSDP-TM Project 的帮助,能够处理托管在远程设备中的项目,并且为所有基于 DLTK 的 IDE 提供 Mylyn 集成。”
图 5. DLTK 屏幕快照
DSDP Target Management (DSDP-TM)
DSDP-TM 项目将创建数据模型和框架以配置和管理远程系统、连接及其服务。作为一名开发人员,想象一下现在能够 SSH 到远程计算机中并且能够使用 Eclipse 工具编辑计算机中的文件。
“DSDP Target Management Project 一直都聚焦于 Ganymede 发行版的内部 API Review、Cleanup、Refactoring 和 Performance 改进,但是仍然有一些激动人心的新闻”,TM 主管兼 Wind River Systems 雇员 Martin Oberhuber 说,“Remote System Explorer (RSE) 现在拥有 Windows® CE 连接支持,允许透明地浏览和编辑 CE 设备中的文件。现在还可以获得与 RSE 集成的轻量级 ANSI Terminal 仿真,它可以在 SSH 连接上提供对交互式远程程序的更好支持。Configurable User Actions 和 Compile Commands 现在允许为常见操作定义简单的 UI 快捷键。现在可以通过导入/导出工具与其他人共享连接、过滤器和用户操作”。
Oberhuber 说,“使用这些新功能,Target Management/RSE 可以轻松访问远程系统和扩展其他 Eclipse 插件的功能。除了 Ganymede 系列之外,新的 TM V3.0 发行版仍然在去年的 Eclipse V3.3 发行版中运行,因此从 TM V2.0 升级十分简单。使用 Ganymede,Java EE 软件包的 Eclipse IDE 已经在初始下载中包含 RSE”。
图 6. TM 屏幕快照
Eclipse Communications Framework (ECF)
ECF 项目包含一个支持开发基于分布式 Eclipse 的工具和应用程序的框架。它可用于创建需要通信支持的其他插件、工具或者完整 Eclipse RCP 应用程序。而且,ECF 还附带允许您在 Eclipse 内与朋友聊天(通过 XMPP/GTalk、MSN 等)、发送文件、共享编辑器等功能的示例应用程序。
ECF 项目主管 Scott Lewis 说,“我们认为人们会为 Ganymede 发行版的 ECF V2.0.0 感到非常激动。它拥有新的用户功能,如实时共享编辑、屏幕快照共享和动态服务恢复,以及诸如远程 OSGi 服务之类的新 API”。
图 7. ECF 屏幕快照
Mylyn
Mylyn 是以任务为焦点的 UI,使用该 UI 可以降低信息负载并且轻松完成多任务处理。它的实现方式是将任务成为 Eclipse 的最高级别部分并且为资源库集成丰富的脱机编辑功能(例如 Bugzilla、Trac 和 JIRA)。任务被集成后,Mylyn 将监视您的工作活动以识别与手头任务相关的信息,并且使用此任务上下文把 Eclipse UI 聚焦于感兴趣的信息上、隐藏不感兴趣的信息并且自动查找相关信息。强烈建议试用 MyLyn V2.2 webinar 查看 Mylyn 功能的可视化示例。
“Mylyn 3.0 向实现成熟的以任务为焦点的界面迈出了一大步。Mylyn 的采用率已经表明,Mylyn 时代已经到来”,Mylyn 主管兼 Tasktop Technologies 首席技术官 Mik Kersten 说,“自从 V2.0 随 Europa 发布,我们已经解决了 1,500 个错误和增强请求,并且通过贡献者社区应用了大约 250 个补丁程序”。
Kersten 说,“用户将注意到全面流线化的 UI 和一些新特性,包括面向任务的内容帮助和 Breakpoints 视图的焦点。性能已全面提高,任务打开和激活将会更快,并且您应当会注意到,尽管提供了所有自动化操作,Mylyn 并没有产生明显的性能或者内存负载。但是 V3.0 中最重要的特性是修补内核 API 以并入来自快速增长的 Mylyn 集成生态系统的反馈。有许多新扩展构建在 Mylyn 上,包括 C++ 和 AspectJ 语言支持、一些新的任务库连接器,以及构建在以任务为焦点的界面上的商业套件(例如 SpringSource Tool Suite 和 Tasktop)”。
Figure 8. Mylyn 屏幕快照
Rich Ajax Platform (RAP)
重用 RCP 代码
如果您对桌面和浏览器之间的代码重用概念感兴趣,建议查看 Eclipse Business Expenses Reporting Tool (EBERT) 示例。EBERT 示例将在桌面、浏览器和嵌入设备上重用大约 90% 的 Eclipse 代码。
通过使用 Eclipse 开发模型,RAP 项目将使开发人员可以构建启用富 Ajax 的 Web 应用程序。这意味着使用著名的 Eclipse 工作台扩展点开发插件并且重用 SWT/JFace API。RAP 项目最棒的一点是它允许您在正确构造的情况下重用来自 RCP 应用程序的代码。这将使您可以创建共享大量通用代码的独立的基于 Web 的应用程序。要了解您如何使用 RAP,请查阅 RAP demo。
“RAP 将把新运行时技术添加到 Ganymede 中,把 RCP/Equinox 的影响扩展到 Web”,RAP 主管兼 Innoopract 雇员 Jochen Krause 说,“通过与现有平台的健壮绑定,它不但利用已建立的技术,而且还使 Eclipse 的采用者可以更加轻松地利用他们的投资并实现 Web 2.0”。
图 9. RAP/RCP 屏幕快照
回页首
竞赛
Eclipse Foundation 正在举办 Ganymede Around the World Contest 并且希望了解您如何在 Ganymede 发行版中使用 Eclipse 项目。撰写博客文章、创建屏幕快照/视频或者录制 podcast 讲述您对 Ganymede 优缺点的认识。只要参与活动,Eclipse Foundation 就将赠送一件 Eclipse 衬衫。除了获得衬衫之外,前三名参赛者还将赢得 Eclipse 夹克,而且获得最佳入围奖的参赛者将赢得 EclipseCon 2009 或者 Eclipse Summit Europe 2008 入场券。
图 10. Ganymede 竞赛屏幕快照
回页首
结束语
总的来说,本文的目的是引领您了解 Ganymede 发行系列并展示发行中的一些项目,因此我在此介绍了多个 Ganymede 项目,其中引用了项目主管的评价和屏幕快照。
那么您还在等什么?立即获取 Eclipse 发行系列并尝试使用 Ganymede。
•JDT 项目 提供的工具插件可以实现 支持任何 Java 应用程序开发的 Java IDE,包括 Eclipse 插件。
•查看 “推荐 Eclipse 阅读清单”。
•在 developerWorks 上浏览所有的 Eclipse 内容。
•您是 Eclipse 新手吗?阅读 developerWorks 文章 “Eclipse 平台入门” 以了解它的起源和架构,以及如何用插件扩展 Eclipse。
•查看 IBM developerWorks 的 Eclipse 项目资源 提高您的 Eclipse 技巧。
•要收听针对软件开发人员的有趣访谈和讨论,请访问 developerWorks podcasts。
•随时关注 developerWorks 的 技术活动和网络广播。
•查看免费的 developerWorks On demand demos 体验并了解 IBM 和开放源码技术及产品功能。
•查阅最近将在全球举办的面向 IBM 开放源码开发人员的研讨会、交易展览、网络广播和其他 活动。
•访问 developerWorks 开放源码专区,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。