使用 WebSphere Studio Application Developer 开发 Java 程序: 与 VisualAge for Java 进行比较

WebSphere® Studio Application Developer是 IBM 十分重要的一个新软件产品。它同时是 VisualAge® for Java™ 和 WebSphere Studio 的战略替代品。VisualAge for Java 开始构建是在诸如 J2EE 之类的概念出现之前,而且是在 Java 专注于 applet 和传统客户机服务器的时代构思的。WebSphere Studio 是在因特网提供使用 CGI 脚本的 HTML 页面时创建的。从那以后,Java 经过不断改进,逐渐进入成为 Web 应用程序服务器端开发一部分的许多领域,例如,servlet、EJB、JSP™ 和 J2EE。越来越多地,Web 页面创作工具不仅必须处理 HTML 标记的创作,而且必须处理 JSP 内容的创作,这需要 scriptlet 中 Java 语法的编码、着色和验证。Java bean,原来是为提供类似于 Active-X 的客户机端组件模型而创建的,现在则通过 <jsp:usebean> 标记在 JSP 中使用以封装服务器端业务逻辑。

随着 Java 的用途不断改变,因此开发工具也必须改变。随着 WebSphere Studio Application Developer 的到来,IBM 已经构建了一个全新的代码库,IBM 和其它公司能够很方便地扩展该代码库。其基础是 IBM 开放源码工具平台,称作 Eclipse

对于 VisualAge for Java 开发人员,我撰写这篇文章来比较和对照 WebSphere Studio Application Developer 和 VisualAge for Java 中的 Java 编辑能力,因此那些使用 VisualAge for Java 的人可以更好地了解新的 Application Developer 工具目前提供了什么功能。本文还演示了如何编写一个独立的 HelloWorld 类,以说明如何控制编译、错误报告和其它 Java 设置。后续文章将涵盖更多主题,包括调试代码、概要分析代码、运行特殊代码片断,以及更多 WebSphere 类类型,如 servlet、JSP 和 EJB。

概述
VisualAge for Java 和 Application Developer 之间最显著的差异是如何存储代码元素,以及如何编译和执行代码。

类源代码

VisualAge for Java
源代码存储在一个称作 Envy 的专用资源库中。这提供了源代码配置管理(source configuration management(SCM)),并且可一直跟踪到方法级版本的代码更改。在 VisualAge for Java 外部部署或执行的源代码抽取是通过将源代码导出到文件系统完成的,而包含外部源代码是通过将源代码导入到资源库,即将所有源代码复制到资源库来完成的。

Application Developer
源代码存储在文件系统中的 .java 源文件中。通过安装了如 CVS 等的独立工具就提供了对源代码配置管理的支持。SCM 的颗粒度是文件级别,因此即使有本地客户机更改高速缓存,它也不支持方法版本。由于源代码存储在文件系统中,因此不需要单独的导出过程将文件从资源库中抽取出来。Application Developer 还可以通过简单地指向外部文件夹或外部 JAR 文件,无需进行导入就可使用它们。

Application Developer 这种方法的优点是它比 Envy 更开放,它让用户使用自己选择的 SCM 工具,而且它更接近期望文件存在于文件系统中的本机 Java 环境。其缺点是它失去了 Envy 提供的一些内置功能,如类的所有权和对更改的跟踪。

类字节码

VisualAge for Java
字节码是使用内部编译器创建的,并且存在于 .icx 文件内的工作区中。VisualAge 只能使用其定制的虚拟机(VM)来执行它们。对应其编译源代码得到的类的集合是工作区中已装入的类的集合。工作区中的 Java 开发工具箱(JDK)是由 IBM 随同 VisualAge for Java 一起提供的,用户不能对它进行更改。在 VisualAge for Java 中用于运行和调试代码的虚拟机称作通用虚拟机(Universal Virtual Machine(UVM)),并且是 IBM 编写的专用虚拟机。

Application Developer
编译仍使用内部编译器完成,但对应其编译源代码得到的类的集合在项目的构建路径中定义。用户可以完全控制构建路径,它可以包括 Application Developer 中的其它项目或文件系统中的外部 JAR 文件。构建路径中的 JRE 可由用户设置成从 1.1.7 到 1.4 的任何 JRE 级别,包括定制的 VM,如用于嵌入设备的 IBM J9 VM。需要使用内部编译器,而不是 JDK 的编译器,以便支持诸如递增编译等的功能。当在 Application Developer 中使用 Run 按钮或 Debug 按钮执行某个类时,通过使用本机 JRE 来执行它。

Application Developer 使用本机外部 JRE 的优点是它允许方便地切换 JRE 级别。它还意味着您可以在更接近最终用户环境的环境中进行测试和调试。当使用 Run 或 Debug 按钮来执行带 main(String[]) 方法的类时,是通过使用您指定的本机 JRE 来执行的。使用本机 JRE 的另一个优点是用户可以不必等待 IBM 升级其 UVM 并推出 VisualAge for Java 的新发行版就能切换 JRE 级别。

使用本机 JRE 而不使用 UVM 的缺点是失去了 UVM 的某些功能。最显著的一点是“热交换”(hot swap),即对代码作更改并让 UVM 在不退出程序的情况下装入更改的能力。这有助于极大地提高 VisualAge for Java 中的效率,因为在调试程序的同时可以进行更改,然后立即测试它们。还可以倒回正在运行的程序中的堆栈帧,更改变量或运行程序中的特殊代码,然后继续运行程序。虽然 JDK 1.4 中也包含此功能,但它是专用于 VisualAge for Java 的 UVM 的。当 JDK 仍处于测试版时,Application Developer 就已经开发完成了,因此虽然它支持 JDK 1.4 作为运行时环境,但 Application Developer 调试器不支持热交换。

Application Developer 入门:编写 Hello World 应用程序
让我们通过编写众所周知的 Hello World 应用程序来开始使用 Application Developer。我们将讨论以下主题:

  • 源文件和代码的组织
  • 如何编译 Java 程序,以及查找并修复错误
  • 如何执行 Java 程序
  • 如何将新的 Java 运行时环境(JRE)添加到 Application Developer 并更改 JDK 级别
  • 如何运行剪贴簿(scrapbook)特殊 Java 代码

从哪里开始?
VisualAge for Java 有许多不同的的浏览器,如项目浏览器或类浏览器。Application Developer 构建在一个通用代码库之上,它允许在同一个工作台中编写许多不同的工具,而且有一个叫做透视图(perspective)的概念。每个透视图都有它自己的一组视图、工具栏选项和菜单选项,这些项针对用户要解决的方案进行调整。有一个透视图用于 J2EE 开发,一个用于概要分析,一个用于 XML,以及一个用于 Java 开发。

在 Application Developer 中,通过选择 Perspective => Open => Java来切换到 Java 透视图。这会带来一组让您执行 Java 编程的视图。

项目
在创建类之前,必须创建一个项目,以便使包存在于其中。要创建 Java 项目,切换到 Java 透视图,然后选择 File => New => Java Project。当选择创建 Java 项目的选项时,将会启动一个向导,以下图 1 显示了它的第一个页面。

图 1. New - Java Project 向导
New - Java Project 向导

在将包组合在一起这一方面,Application Developer 项目在使用上类似于 VisualAge for Java 项目。Application Developer 项目不只是组织单元,它还定义了以下内容:

  • 文件的位置,包括 Java 源文件, .class 二进制文件和资源。
  • 构建路径,是以每个项目为基础指定的,并且指定了哪些包含代码的其它 Application Developer 项目或外部 JAR 文件将用于编译代码。
  • 当测试或调试类时使用的 JDK 或 JRE 级别。

现在我将讨论上述每一项内容。

项目中文件的位置
VisualAge for Java 将其源代码存储在称作 Envy 的资源库中。这有许多有用的功能,如保留源代码的多个版本和支持团队编程的能力。Envy 的缺点是它是专用的,当想要在 VisualAge for Java 外部运行代码时,则必须导出代码。而使用 Application Developer 时就不会发生这种情况,因为源文件存储在文件系统中。

在 Application Developer 中,每个项目都可以包含文件夹或文件,并且文件夹可以包含文件。这种结构直接映射到文件系统,其中项目是目录树的根,而文件夹是目录。Application Developer 项目拥有与它们相关的性质,而作为 Java 项目创建的项目则拥有 Java 性质。如果创建了一个项目但没有将它指定成一个 Java 项目,那么以后不能将它更改成 Java 项目。当在 Java 项目中创建包时,它将作为一组目录存储在文件系统中。例如,包 com.ibm.foo 作为项目下的目录树 /com/ibm/foo 存储。

以上图 1 显示了 My Test Project 的项目位置路径,它是目录 C:/WSA_135/eclipse/workspace/My Test Project 。项目中的所有包文件夹都将位于这个目录中。如果不使用缺省位置,而是选择将项目的内容放在另一个目录中,那么这个文件夹可以包含已经存在的文件。如果希望有这样一个目录,该目录已经包含了一些您希望只在 Application Developer 中开始编辑的 Java 和类文件,那么这是很有用的。您所要做的就是创建一个项目,它拥有包的根的父目录的位置,并且其代码自动可以在 Application Developer 中使用。这与传统上采用所导入文件的副本的导入不同,因为如果您在 Application Developer 中进行修改,这些更改就会直接反映在文件系统中。

项目的构建路径
在 VisualAge for Java 中,当编写类时,会针对工作区的全部内容来构建它。当使用了代码辅助或编译了类时,将针对工作区中的其它每个类来验证其外部引用。这意味着您可以快速编写类,而不必担心需要其它哪些类,但它只是将这个问题推迟到以后的开发过程中。可以通过按 RunDebug按钮在 VisualAge for Java 中执行这个类。此时,会创建一个虚拟机,而且只会装入与正在运行的类在同一项目中的类。这通常会导致 java.lang.ClassNotFound 异常。要修复这个问题,必须打开这个类的特性,指定当运行或调试类时将由 VM 装入的其它项目。要获得帮助,可以单击 Compute Now按钮;这将分析所引用的类并创建所需项目的列表。

与按每个类为基础指定项目路径的 VisualAge for Java 不同,Application Developer 按每个项目为基础指定项目路径。每个项目都有一个构建路径,其中包含了必需项目和外部 JAR 文件的列表。构建路径用于代码辅助和编译,它们只使用构建路径中的类列表。当按 Run 或 Debug 按钮时,由 Application Developer 启动以执行这个类的 VM 将其类路径(classpath)设置成项目的构建路径。Application Developer 方法的优点是它更接近真实的 Java 环境,在编译和运行时要自己关心类路径。

在 New - Java Project 窗格中,单击 Next以转到让您配置构建路径的窗格(请参阅下面的图 2)。构建路径的用途是定义项目中的类可以使用哪些类和资源。如果这些类在 Application Developer 中的其它项目中,单击 Projects选项卡并选择所需的项目。下面的图 2 显示了已经选中了 Utilities 项目以将其包括在构建路径中,而 Archiver 项目则没有被选中。

图 2. 可以为每个项目配置 Java 构建路径
New - Java Settings 窗格,其中选择了要在构建路径中包括的 Utilities 项目

选择 Libraries选项卡将任何外部 JAR 文件添加到构建路径,而不必明确将它们导入到工作台中。选择 Order选项卡来定义构建路径中元素的顺序:所需的项目和外部 JAR 文件。重新排序这些元素可以看作是更改 javac 或 Java 命令的 -classpath 参数的顺序。创建了 Java 项目之后,可以通过使用特性对话框随时更改构建路径。

一旦创建了一个项目,它就会出现在 Packages 窗格中,作为一个文件夹图标显示,在右上角有一个小 J 表示它是一个 Java 项目。任何被引用的 JAR 文件,如来自 JRE 的 rt.jar ,都会出现在 Pachages 窗格中的项目“Test Project”之下。要隐藏这些 JAR 文件,而仅显示实际在项目中的包和文件,单击 Packages 窗格上的向下箭头,然后选择 Show Referenced Libraries。请参阅下面的图 3。

图 3. JDK 的 rt.jar 文件显示为项目所引用的 JAR 文件
JDK 的 rt.jar 文件显示为项目所引用的 JAR 文件

项目的 JDK 或 JRE 级别
使用 Application Developer 时,要切换 JRE 级别,必须首先从 IBM、Sun 或其它 JRE 供应商处获取另一个 JRE,并将它安装到您的机器上。Preferences 对话框让您可以使 Application Developer 知道可用的 JRE。下面的图 4 显示了缺省情况下 Installed JREs 包括了与 Application Developer 本身一起启动的 VM。

图 4. 在 Preferences 对话框上选择 Java => Installed JREs 来查看已安装的 JDK
选择了 Installed JRE 的 Preferences 对话框的抓屏。可以看到已安装的 JDK。

单击 New按钮以添加新的 JRE。JRE 包含了在运行时环境中执行和调试 Java 所需的文件,而 JDK 包含了其它项,如编译器、命令行调试器,并且通常还有 JRE 类的 Java 源文件。可以使用 JDK 作为 Application Developer 的 JRE,这会影响要进行编译和运行的类的列表,但它不会更改所使用的编译器;那始终是属于 Application Developer 的内部编译器。此外,JRE 用于测试和调试通过其 main(String[]) 方法启动的 Java 类,而不是通过 WebSphere Test Environment 启动的那些类;这会使用与 WebSphere 一起提供的 JRE,而且不能轻易更改。

我从 Sun 获取了一个 JDK 并将它安装到我的机器上的 C:/Sun jdk 1.3.1 目录中。要添加它,在 Add JRE 对话框中输入其主目录(home directory)。请参阅下面的图 5。

图 5. 通过指向其主目录来添加新的 JRE,该目录下有一个 /bin 目录
Add JRE 的抓屏,其中填写了字段以添加新的 JRE

当输入主目录时,对话框将检查这是否是一个有效的 JRE。它还会寻找 rt.jarsrc.jar 文件。JRE 包括了作为 rt.jar 文件中类文件的运行时代码,JDK 也许包括了作为 src.jar 文件中 Java 文件的源代码。以上图 5 显示了已经检测到 src.jar ,而且显示为 JRE 源文件。标准检测到的 VM(即 Application Developer 包括的 VM)不包括 src.jar 。如果您愿意,可以获取一个 JDK src.jar 文件,然后编辑检测到的 VM 以将它指向另一个 src.jar 文件。但是,在获取带匹配代码的 src.jar 文件时要非常小心;否则,当调试代码时,类文件和源文件中的行号会不匹配。因此,如果要进行许多调试并单步进入 JRE 类,我强烈建议从 IBM 或 Sun 获取带源代码的 JDK,并使用它来运行 Application Developer 代码。

有多个 JRE 时,可以从中选择一个作为缺省值。可以通过选择已安装 JRE 的第一列中的复选框来设置缺省值。请参阅下面的图 6,我已经将 Sun 的 JDK 1.3.1 设置成缺省 JRE。

图 6. 已经将 Sun 的 JDK 1.3.1 作为 JRE 类型添加,现在需要告诉 Test Project 使用它
选择 Sun 的 JDK 1.3.1 作为 JRE 类型的抓屏

创建了 Test Project 之后,我们让它使用缺省 JRE 级别。当按上述操作更改缺省 JDK 时,所有使用缺省 JRE 级别的项目都将改为使用新的缺省值,而且会重新编译它们的类。如果打开项目特性,如以下图 7 所示,就可以看到 Test Project 始终使用缺省 JRE 级别。如果想要重设这个特性,可以指定一个定制的 JRE 并从列表中选择一个。

图 7. 项目的 Properties 窗格可以让您指定对于项目使用哪个 JRE 级别
项目的 Properties 窗格的抓屏,并且选择了适当的 JRE 级别

创建 Hello World 类
在创建项目之后,单击 New Package按钮以启动让您创建包的向导。或者,可以单击 New Class按钮以弹出下面图 8 中显示的对话框。如果在 New - Java Class 向导中输入的包名称还不存在,将会为您创建它。New - Java Class 向导让您指定超类、任何想要类继承的接口,以及想要为您创建哪些缺省方法。对于 HelloWorld 类,我们希望它有一个可以用于执行它的 main 方法。

图 8. 通过使用 New - Java Class 向导一起创建 HelloWorld 类及其包
New - Java Class 的抓屏,其中填写了字段以创建 HelloWorld 类

在 VisualAge for Java 中,工作方式是有单一源代码窗格响应其输入的一个或多个树或列表窗格的选择。例如,可以单击某个类来查看其源代码,然后单击另一个类,在同一个文本窗格中查看其源代码。Application Developer 的工作方式截然不同,其中每个要编辑的文件都用单独的编辑器分别打开,这些编辑器排列成一系列笔记本页面。下面的图 9 显示了用编辑器打开的 HelloWorld 类,它是第一个笔记本页面。

图 9. Java 透视图让您查看和编辑 Java 文件
Java 透视图让您查看和编辑 Java 文件

与 VisualAge for Java 不同,如果选择了 Package 列表中的其它文件,它们不会致使源代码页面更改它正使用的类的内容。必须分别双击每个源文件或者单击其弹出菜单上的 Open来打开它们。随着打开了更多文件,因此创建了新的编辑器作为笔记本页面,并且当创建了许多笔记本页面时,会出现向左和向右箭头以便您可以在页面之间滚动。下面的图 10 显示了这种情况。 HelloWorld.java 是当前编辑器,而且它显示了一个渐浅的蓝色工具栏页面标签。其它打开的编辑器都显示在它旁边,单击这些编辑器就会更改当前编辑器。文件的编辑器页面标题上显示的 *(如图 10 中的 *MyProperties.properties)表示编辑器的内容是“已改动的”? 编辑器中显示的源代码与保存的源代码不同。

图 10. 对于每次打开文件都使用不同的编辑器
一个抓屏,显示了对于每个打开的文件,都使用不同的编辑器

编译和修复错误
当保存 Java 源文件时,会对它进行编译。如同 VisualAge for Java,编译是递增的,因此还会重新编译所有受影响的类。这包括引用已更改类的子类或类。自动递增编译是非常有用的,但有时它会碍事。例如,您要执行一项大的重构练习,如重命名方法或移动类。您预先知道有许多类会遭到破坏,因此您宁可只执行所有受影响类的重构,然后进行编译。这使得您不必在您知道将不起作用的编译上花费时间,还减少了由于红色 X 过早开始出现而产生的大量“干扰”。要做到这一点,可以使用 Workbench 菜单中的 Preferences 对话框来关闭执行自动编译的选项。下面的图 11 显示了这种情况。

图 11. 使用 Workbench Preferences 窗格来控制编译何时发生
Workbench Preferences 窗格的抓屏

选择复选框 Perform build automatically on resource modification让您控制在 Java 源文件更改时是否进行编译。它叫作“构建(build)”而非“编译(compile)”的原因是因为 Application Developer 有构建步骤而不仅仅是 Java 编译;例如,报告 HTML 文件中断开的链接。如果取消选择该自动构建的选项,它会影响 Application Developer 的全部,而不只是 Java 编译。

如果确实决定不自动进行构建,那么当完成重构时,必须仍然能够调用它。通过选择项目的 Build菜单选项就可以完成此项操作。Application Developer 记住了您已更改的文件,因此它只编译已更改的资源。如果您出于任何原因而希望重新编译所有内容,选择 RebuildAll菜单选项。

Java 透视图底部的 Tasks 视图中报告了 Java 文件中的所有错误。下面的图 12 显示了 HelloWorld.java 中犯了一个错误: println 方法被输入成 printlx

图 12. 错误在任务栏中显示;红色 X 也显示在有错误的 Java 文件上
Java Perspective 的抓屏,且在任务栏中显示了错误

HelloWorld.java 文件被标志为有一个错误。这个错误致使在 Packages 窗格中的类中出现了一个红色 X。任何包含这些类的包上也有一个红色 X 出现;项目本身也有一个红色 X,使您一眼就看到哪些项目或包包含了有错误的类。任务列表还显示了错误、关于错误的详细信息以及行号。当双击任务列表中的一项时,它会打开适当的编辑器,如果是 Java 源代码编辑器,会选择出错的代码。如调用了弃用(deprecated)方法,警告错误以黄色的三角而不是红色 X 显示。

显示所有错误的任务列表类似于 VisualAge for Java 中的 All Problems 页面。除了查看工作台的所有问题之外,有时您只想查看给定文件的错误,那么可以通过使用 Filter Tasks 对话框做到。单击 Tasks 列表的标题窗格上的 启动 Filter Tasks 对话框的按钮的抓屏按钮来启动这个对话框。

图 13. Filter Tasks 对话框让您控制 Task List 查看器的内容
Filter Tasks 对话框的抓屏

Filter Tasks 对话框利用项的复选框树让您选择希望在任务列表中出现哪些类型的项。可以指定是否要查看 Problem 或 Task,而对于 Problem,它们进一步分类成问题类型。其中原因是任务列表不但显示编译错误,而且显示对文件做的标记。可以创建不同的标记,而且它们可以是纯信息性的,如 Tasks 或 Bookmarks,或者具有运行时意义,如断点,或者由 Application Developer 构建器使用的标记,如问题。要创建 Tasks 或 Bookmarks,从 Java 源代码编辑器中选择弹出菜单中的 Add选项,它会弹出一个带有 breakpoint、bookmark 和 task 的子菜单。对于将注释插入到代码中,如“Fix this later”或“This needs optimizing”,Bookmarks 是有用的。

Filter Tasks 对话框中让您使用的一个非常有用的选项是显示 被选择资源的任务,而不只是显示任何资源上的任务。选择了这个选项之后,当选择包查看器中的一个 Java 源文件或选择其编辑器页面时,则只会看到它的错误。如果只对每次修复一个文件有兴趣,那么这有助于减少干扰。显示所有资源的任务可以让您立即查看所有错误。

上面图 12 中不仅显示在其页边上带有好看的小红 X 的错误,而且显示了在 Outline 视图中选中的 main 方法四周的散列标尺。如果选择了 Outline 视图中的某一项,源代码页面将针对所选项显示标尺。如果源文件很大,而 Outline 中的项对应的源代码超出屏幕,那么它会自动将源代码滚动到视图中。这对于浏览某个方法非常有用:Outline 按名称来排序方法,可以滚动到要查看的方法,选择它来显示这个方法。VisualAge for Java 有两种使用 Java 源代码的方式:全屏幕视图和只显示所选项的源代码的受限视图。Application Developer 通过工具栏按钮 如果希望源代码页面只显示所选概要项的代码,单击此按钮提供了相同选项。单击此按钮时,源代码页面将只显示所选 Outline 项的代码。

要改正不正确拼写的 printlx 错误,可以将代码更改成 println,按 Save 以重新编译。VisualAge for Java 有一个很好的功能,在保存时会提示错误,以及可能的改正方法,但在 Application Developer 中不存在这个功能。如果一个 Java 类中有多个错误,可以使用工具栏上的 使用此按钮在一个 Java 类中的多个错误之间滚动按钮在它们之间切换。

运行 Java 代码
当运行 Java 代码时,Application Developer 缺省情况下会切换到它的 Debug 透视图。Debug 透视图有一组不同的视图。如果要调试一些代码,Debug 透视图当然非常有用,但对于只运行和测试代码,Java 透视图就足够了。要更改 Application Developer 以使它不切换到 Debug 透视图,可以使用 Preferences 对话框。通过选择 Window => Preferences来启动这个对话框。

图 14. 运行程序时,Debug 首选项缺省情况下会切换到 Debug 透视图
Debug Preferences 窗格的抓屏

以上图 14 显示了 Debug 首选项中的一组选项。取消选择复选框 Show Debug Perspective when a program is launched in debug mode以停留在 Java 透视图中。

在 Application Developer 中,有许多方法可以启动程序。后续文章将更深入地讨论这些方法,但是我们希望用于启动独立 Java 应用程序的方法,如通过 static void main(String[]) 方法来运行 Hello World,是选择 Run => Java Application。单击 Run按钮(跑步者的图片)旁的向下箭头,您会得到一个带有各种选项的菜单,如以下图 15 所示。选择 Java Application将会运行所选类的 static main(String[]) 方法。

图 15. 运行 Java 类有不同的选项
Run 弹出菜单选项的抓屏

如果没有更改工作台首选项(请参阅上面的图 14),Application Developer 会切换到 Debug 透视图;否则,它会停留在 Java 透视图中。窗口底部的 Tasks 视图(以前显示了编译错误)由三个笔记本选项卡组成,其中一个是 Console。运行程序之后,它会切换到 Console 视图,其中显示了输出到控制台的字符串“Hello World”(请参阅以下图 16)。

图 16. 显示了字符串“Hello World”的 Console 视图
显示了字符串“Hello World”的 Console 视图的抓屏

可以单击 Console 视图右上角的橡皮按钮来清除控制台输出。如果已经运行了某个程序,那么只要按键盘上的 F10按键就可以重新启动已运行过的最后一个程序。F10 是菜单选项 Debug => Relaunch Last的快捷键。

如果要将某个类当作独立 Java 应用程序运行,不必每次都要通过指定其 main(String[]) 方法来运行,可以使其成为项目的缺省启动方法。要做到这一点,选择 Packages 窗格中 Test Project 上弹出菜单的 Properties选项来打开项目的特性。在 Properties 对话框中,从列表中选择 Launcher。下拉菜单显示了 Application Developer 提供的启动器的类型;选择想要使其成为项目缺省启动器的那一个。下面的图 17 显示了 Test Project 的缺省启动器已设置成 Java Application,因此您不必在每次按 Run 按钮时重新指定它。

图 17. 使用 Launcher 的 Properties 窗格来设置项目的启动器
Launcher 的 Properties 窗格的抓屏,其中选择了缺省启动器

Run按钮时, HelloWorld.class 就运行了。这是使用为项目指定的 JRE 级别(即与 Application Developer 一起交付的缺省 JRE 级别)完成的。与有自己专用的 VM 和内置 JDK 的 VisualAge for Java 不同,这是一个纯 JRE 实现。运行的代码是所构建的类文件;它们位于目录 C:/WSAD-Beta/Workbench/Test Project/com/IBM/wsad/testjava 中。不需要导出工作将代码从 Envy 和工作台抽取出来以使用 JRE 来运行;它已经编译到文件系统中并且用标准 JRE 执行。

结束语
本文介绍了使用 WebSphere Studio Application Developer 进行 Java 编程的基础,并且与 VisualAge for Java 进行比较。有关使用 Application Developer 进行 Java 编程的更多详细信息,请阅读 Sheldon Wosnick 撰写的下列文章:

本系列中的下一篇文章将涵盖一些额外的主题,包括:

  • 调试 Java 程序
  • 使用剪贴簿页面来编写特殊代码片断
  • 版本控制、团队编程和文件同步
  • 概要分析和跟踪代码以进行性能分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值