开发和部署常规 Java 应用程序

上一篇 / 下一篇  2009-05-31 16:01:12 / 个人分类:netbeans

开发和部署常规 Java 应用程序

下面的简明教程将为您介绍在 NetBeans IDE 中开发 Java SE 应用程序的一些基本步骤。本教程假定您已在一定程度上熟悉了 Java 应用程序的开发。接下来,您将了解一些可简化应用程序开发的 IDE 功能。

您将创建一个应用程序,该应用程序可将多个词转换为一个词,该词包含其他每个词中的一个字母。生成的词称为离合词 (acrostic)。

学完本教程大约需要 30 分钟。如果您希望学习历时更短的 "Hello World" 教程,请参见 NetBeans IDE Java 快速入门教程

目录

本页上的内容适用于 NetBeans IDE 6.5

要学完本教程,您需要具备下表所列的软件和资源。

软件或资源要求的版本
NetBeans IDE版本 6.5
Java Development Kit (JDK)版本 6 或
版本 5

项目设置

创建的应用程序将包含两个项目:

  • Java 类库项目,您将在其中创建实用程序类。
  • 包含主类的 Java 应用程序项目,该类用于实现库项目的实用程序类中的方法。

创建这些项目后,您将在应用程序项目的类路径中添加库项目。然后,将对应用程序进行编码。库项目将包含一个带有 acrostic 方法的实用程序类。acrostic 方法采用一组词作为参数,然后基于这些词生成一个离合词。MyApp 项目将包含一个主类,该类调用 acrostic 方法并传递在应用程序运行时作为参数输入的词。

注意:严格地讲,这类简单应用程序并不需要两个项目。本教程之所以使用两个项目,其目的旨在演示较复杂的应用程序可能需要的功能。

创建 Java 类库项目

  1. 选择“文件”>“新建项目”(Ctrl-Shift-N)。在“类别”下选择 "Java"。在“项目”下选择“Java 类库”。单击“下一步”。
  2. 在“项目名称”下,键入 MyLib。将项目位置更改为计算机上的任意目录。从现在起,本教程将此目录称为 NetBeans_projects

    注意:上面指定的路径在向导的“项目文件夹”字段中应显示如下:/NetBeans_projects/MyLib/

  3. (可选)选中“使用专用文件夹存储库”复选框并指定库文件夹的位置。有关此选项的详细信息,请参见共享项目库
  4. 单击“完成”。将同时在“项目”窗口和“文件”窗口中打开 MyLib 项目。

创建 Java 应用程序项目

  1. 选择“文件”>“新建项目”。在“类别”下选择 "Java"。在“项目”下,选择“Java 应用程序”。单击“下一步”。
  2. 在“项目名称”下,键入 MyApp。请确保将“项目位置”设置为 NetBeans_projects
  3. (可选)选中“使用专用文件夹存储库”复选框。
  4. 输入 acrostic.Main 作为主类。
  5. 确保选中“设置为主项目”和“创建主类”复选框。
  6. 单击“完成”。将在“项目”窗口中显示 MyApp 项目,并在源代码编辑器中打开 Main.java

配置编译类路径

由于 MyApp 将依赖于 MyLib 中的类,因此您必须在 MyApp 的类路径中添加 MyLib。执行此操作还可确保 MyApp 项目中的类可以引用 MyLib 项目中的类,而不会导致编译错误。此外,您也可以通过此操作在 MyApp 项目中使用代码完成功能填写基于 MyLib 项目的代码。在 IDE 中,类路径由“库”节点直观表示。

在项目类路径中添加库的实用程序类:

  1. 在“项目”窗口中,右键单击 MyApp 项目的“库”节点,然后选择“添加项目”,如下图所示。

    此图显示了右键单击项目的节点时出现的“添加项目”命令。

  2. 浏览到 NetBeans_projects/,然后选择 MyLib 项目文件夹。“项目 JAR 文件”窗格显示了可以添加到项目中的 JAR 文件。请注意,系统将列出 MyLib 的 JAR 文件,即使您尚未实际生成 JAR 文件也是如此。在生成并运行 MyApp 项目时,将生成此 JAR 文件。
  3. 单击“添加项目 JAR 文件”。
  4. 展开“库”节点。MyLib 项目的 JAR 文件将被添加到 MyApp 项目的类路径中。

创建和编辑 Java 源代码

现在您需要创建 Java 包并添加将用于构建离合词的方法。之后,您需要在 Main 类中实现 acrostic 方法。

创建 Java 包和类文件

  1. 右键单击 MyLib 项目节点,然后选择“新建”>“Java 类”。键入 LibClass 作为新类的名称,在“包”字段中键入 org.me.mylib,然后单击“完成”。将在源代码编辑器中打开 LibClass.java
  2. 在 LibClass.java 中,将光标置于类声明 (public class LibClass {) 后面的行上。
  3. 键入或粘贴以下方法代码:
  4. public static String acrostic(String[] args) {
    StringBuffer b = new StringBuffer();
    for (int i = 0; i < args.length; i++) {
    if (args[i].length() > i) {
    b.append(args[i].charAt(i));
    } else {
    b.append('?');
    }
    }
    return b.toString();
    }
  5. 如果粘贴的代码格式不正确,请按 Alt-Shift-F 组合键重新设置整个文件的格式。
  6. 按 Ctrl-S 组合键保存该文件。

编辑 Java 文件

现在您将向 Main.java 中添加一些代码。在执行此操作的过程中,您会看到源代码编辑器的代码完成和代码模板(缩写)功能。

  1. 在源代码编辑器中选择 "Main.java" 标签。如果尚未打开该标签,请在“项目”窗口中展开 "MyApp" >“源包”> "acrostic",然后双击 "Main.java"。
  2. 删除 main 方法中的 // TODO code application logic here 注释。
  3. 键入下列代码,以代替该注释:
    String result = Li

    将光标保留在紧随 Li 之后的位置。在下一步中,您将使用代码完成功能来将 Li 转换为LibClass

  4. 按 Ctrl-空格键打开代码完成框。

    将显示一个简短的列表,其中列出了用于完成该词的可能方式。但是,该列表中可能不会列出您所需的类 LibClass

  5. 再次按 Ctrl-空格键以显示较长的可能匹配项列表。

    此列表中应该包含 LibClass

  6. 选择 "LibClass",然后按 Enter 键。IDE 将填写该类名的其余部分,并且还将自动为该类创建一个 import 语句。

    注意:IDE 还将在代码完成框的上面打开一个框,该框显示选定类或包的 Javadoc 信息。由于此包没有对应的 Javadoc 信息,因此该框将显示“找不到 Javadoc”消息。

  7. 在 main 方法中,在 LibClass 之后输入一个句点。将再次打开代码完成框。
  8. 选择 "acrostic(String[]args)" 方法,然后按 Enter 键。IDE 将填写 acrostic 方法并突出显示args 参数。
  9. 按 Enter 键以接受 args 参数。
  10. 键入分号 (;)。

    最后一行应与以下行类似。

    String result = LibClass.acrostic(args);
  11. 按 Enter 键以开始一个新行。然后,键入 sout 并按 Tab 键。sout 缩写将扩展为System.out.println("");,且光标置于引号之间。在引号内键入 Result =,并在右引号后面键入+ result

    最后一行应与以下行类似。

    System.out.println("Result = " + result);
  12. 按 Ctrl-S 组合键保存该文件。

注意:sout 是源代码编辑器中许多可用的代码模板之一。快捷键列表中提供了代码模板的列表,通过选择“帮助”>“快捷键列表”可以打开该列表。

编译和运行应用程序

现在您需要设置主类和执行参数,以便您可以运行该项目。

注意:缺省情况下,在创建项目时已启用了“在保存时编译”功能,因此无需首先编译代码,即可在 IDE 中运行应用程序。有关“在保存时编译”功能的详细信息,请参见“创建、导入和配置 Java 项目”指南的“在保存时编译”部分。

设置主类和执行参数

此程序的输出基于您在运行程序时提供的参数。您将提供五个词作为参数,然后通过这五个词生成离合词 "Hello"。离合词是由第一个词的第一个字母、第二个词的第二个字母、第三个词的第三个字母,依此类推组合而成的。

添加 IDE 在运行应用程序时使用的参数:

  1. 右键单击 MyApp 项目节点,选择“属性”,然后选择对话框左窗格中的“运行”节点。

    主类应该已设置为 acrostic.Main

  2. 在“参数”字段中键入 However we all feel zealous,然后单击“确定”。

运行应用程序

现在您已创建了应用程序并为该应用程序提供了运行时参数,接下来便可以在 IDE 中测试运行应用程序。

在 IDE 中运行应用程序:

  • 选择“运行”>“运行主项目”(F6)。

    在“输出”窗口中,您应该看到程序的输出 Result = Hello(作为参数传递到程序的短语的离合词)。

测试和调试应用程序

现在您将使用 JUnit 为项目创建并运行测试,然后在 IDE 的调试器中运行应用程序以检查错误。在 JUnit 测试中,您将通过以下方式来测试 LibClass:将短语传递到 acrostic 方法,然后使用断言指示您认为应生成的结果。

创建 JUnit 测试

  1. 在“项目”窗口中右键单击 "LibClass.java" 节点,然后选择“工具”>“创建 JUnit 测试”(Ctrl-Shift-U)。

    如果这是您首次在 IDE 中创建 JUnit 测试,则系统会显示“选择 JUnit 版本”对话框提示。按 Enter 键以选择 "JUnit 4.x",然后继续执行“创建测试”对话框中的操作。

  2. 在“创建测试”对话框中,单击“确定”以使用缺省选项运行命令。IDE 将在单独的 test 文件夹中创建org.me.mylib 包和 LibClassTest.java 文件。通过展开“测试包”节点和 org.me.mylib 子节点,可以找到此文件。
  3. 在 LibClassTest.java 中,删除 public void testAcrostic() 方法的主体。
  4. 键入或粘贴以下代码,以代替删除的行:
    System.err.println("Running testAcrostic...");
    String result = LibClass.acrostic(new String[]
    {"fnord", "polly", "tropism"});
    assertEquals("Correct value", "foo", result);
  5. 通过按 Ctrl-S 组合键保存该文件。

运行 JUnit 测试

  1. 选择 MyLib 项目节点,然后选择“运行”>“测试项目 (MyLib)”或按 Alt-F6 组合键。将在“输出”窗口中打开 "MyLib (test)" 标签。同时,将编译并运行 JUnit 测试用例。“JUnit 测试结果”显示测试是否通过。
  2. 您还可以运行单个测试文件,而不是测试整个项目。在源代码编辑器中选择 "LibClass.java" 标签,然后选择“运行”>“测试文件”。

可以从 IDE 中获取 JUnit API 文档。选择“帮助”>“Javadoc 引用”> "JUnit <版本号>"。

通过访问 http://www.junit.org,可以了解有关 JUnit 的详细信息。

调试应用程序

在本部分中,您将使用调试器来逐步执行应用程序,并观察在组合离合词时变量值的变化情况。

 

在调试器中运行应用程序:

  1. 在 LibClass.java 文件中,转至 acrostic 方法,并在 b.append(args[i].charAt(i)); 内部的任何位置放入插入点。然后,按 Ctrl-F8 组合键设置断点。
  2. 选择“调试”>“调试主项目”(Ctrl-F5)。IDE 将打开调试器窗口并在调试器中运行该项目,直至到达断点为止。
  3. 选择 IDE 底部的“局部变量”窗口,然后展开 "args" 节点。字符串数组包含您输入的作为命令参数的短语。
  4. 按 F7 键(或选择“运行”>“步入”)以逐步执行程序,同时观察构建离合词时 b 变量的变化情况。

    当程序到达结尾时,调试器窗口随即关闭。

有关详细信息,请参见在 NetBeans IDE 中编写 JUnit 测试

生成和部署应用程序

在您对应用程序正常工作感到满意后,即可准备在 IDE 之外部署应用程序。在本部分中,您将生成应用程序的 JAR 文件,然后从命令行运行 JAR 文件。

生成应用程序

IDE 中的主生成命令为“清理并生成”命令。“清理并生成”命令可以删除以前编译的类和其他生成工件,然后从头开始重新生成整个项目。

注意:还有一个“生成”命令,该命令不会删除旧的生成工件,但此命令缺省情况下处于禁用状态。有关详细信息,请参见“创建、导入和配置 Java 项目”指南的“在保存时编译”部分。

生成应用程序:

  • 选择“运行”>“清理并生成主项目”(Shift-F11)。

来自 Ant 生成脚本的输出将显示在“输出”窗口中。如果未显示“输出”窗口,则可以通过选择“窗口”>“输出”>“输出”手动打开该窗口。

清理并生成项目时,会出现以下情况:

  • 将删除(“清理”)由以前的生成操作生成的输出文件夹。(在多数情况下,这些文件夹为 build 和dist 文件夹。)
  • build 和 dist 文件夹将添加到您的项目文件夹(以下称为 PROJECT_HOME 文件夹)中。
  • 所有源代码将编译到 .class 文件中,这些文件被置于 PROJECT_HOME/build 文件夹内。
  • 将在 PROJECT_HOME/dist 文件夹内创建包含您的项目的 JAR 文件。
  • 如果您已为该项目指定了任何库(除了 JDK 之外),则将在 dist 文件夹中创建 lib 文件夹。这些库将被复制到 dist/lib 中。
  • JAR 中的清单文件更新后将包括用于指定主类的条目以及项目的类路径中的所有库。

注意:您可以在 IDE 的“文件”窗口中查看清单的内容。生成项目后,请切换到“文件”窗口并导航至dist/MyApp.jar。展开 JAR 文件的节点,展开 "META-INF" 文件夹,然后双击 "MANIFEST.MF" 以便在源代码编辑器中显示清单。

Main-Class: acrostic.Main
Class-Path: lib/MyLib.jar

 

(要查找有关清单文件的详细信息,请参阅《Java 教程》中的本章。)

在 IDE 外部运行应用程序

在 IDE 外部运行应用程序:

  1. 在您的系统上,打开命令提示符或终端窗口。
  2. 在命令提示符下,将目录更改为 MyApp/dist 目录。
  3. 在命令行中,键入以下语句:
    java -jar MyApp.jar However we all feel zealous

随后,将执行应用程序并返回以下输出,如下图所示:

Result = Hello
显示正在运行的程序输出的命令提示符。

将应用程序分发给其他用户

现在您已验证了应用程序能够在 IDE 外部运行,接下来便可以分发该应用程序。

分发应用程序:

  1. 在您的系统上,创建一个 zip 文件,该文件包含应用程序 JAR 文件 (MyApp.jar),并附带包含MyLib.jar 的 lib 文件夹。
  2. 将该文件发送给要使用该应用程序的人员。指示他们解压缩该 zip 文件,并确保 MyApp.jar 文件和lib 文件夹位于同一个文件夹中。
  3. 指示用户按照上面的在 IDE 外部运行应用程序部分中的步骤进行操作。

其他常见任务

现在您已学完了该教程的主要部分,但是仍有一些基本的任务尚未介绍。本部分包括其中的几项任务。

使 JDK 的 Javadoc 在 IDE 中可用

为了使 JDK 类可以使用“显示 Javadoc”命令,您需要将 JDK 的 Javadoc 与项目正在使用的 JDK 相关联。

使 JDK 的 Javadoc 可用于“显示 Javadoc”命令:

  1. 如果您的系统中尚未存在 Java SE API 文档,请从http://java.sun.com/javase/downloads/index.jsp 中下载该文档。
  2. 选择“工具”>“Java 平台”。
  3. 在“平台”列表中,选择您的项目正在使用的 JDK。
  4. 单击 "Javadoc" 标签。
  5. 单击“添加 ZIP/文件夹”按钮,然后导航至系统上包含 JDK Javadoc 的 zip 文件或文件夹。选择该 zip 文件或文件夹,然后单击“添加 ZIP/文件夹”按钮。
  6. 单击“关闭”。

为项目生成 Javadoc

您可以根据添加到类中的 Javadoc 注释为项目生成已编译的 Javadoc 文档。

为项目生成 Javadoc 文档:

  1. 选择 MyLib 项目。
  2. 从 IDE 的主菜单中选择“生成”>“为 'MyLib' 生成 Javadoc”。

    生成的 Javadoc 将被添加到项目的 dist 文件夹中。此外,IDE 还将打开一个 Web 浏览器,用于显示 Javadoc。


TAG:

 

评分:0

我来说两句

日历

« 2024-05-22  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 58554
  • 日志数: 89
  • 建立时间: 2008-12-13
  • 更新时间: 2010-01-13

RSS订阅

Open Toolbar