发布新日志

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

    2009-05-31 16:01:12

    开发和部署常规 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。

  • NetBeans IDE Java 快速入门

    2009-05-28 09:27:05




    NetBeans IDE Java 快速入门教程:

    本教程通过指导您创建一个简单的 "Hello World" Java 控制台应用程序,简要介绍 NetBeans IDE 工作流。学习完本教程后,您将对如何在 IDE 中创建和运行应用程序有一个基本了解。

    学习完本教程所需的时间不到 10 分钟。

    学习完本教程后,您可以转至文档、培训和支持页中链接的学习资源。这些学习资源提供了综合性教程,其中重点介绍适用于各种应用程序类型的更多 IDE 功能和编程技巧。如果您不希望创建 "Hello World" 应用程序,则可以跳过本教程,而直接转至这些学习资源。

    目录

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

    要学习完本教程,您需要具备以下软件和资源。

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

    设置项目

    要创建 IDE 项目,请执行以下操作:

    1. 启动 NetBeans IDE。
    2. 在 IDE 中,选择“文件”>“新建项目”(Ctrl-Shift-N),如下图所示。

      选定了“文件”>“新建项目”菜单项的 NetBeans IDE。

      1. 在“新建项目”向导中,展开 "Java" 类别,然后选择“Java 应用程序”,如下图所示。然后,单击“下一步”。NetBeans IDE 中“新建项目”向导的“选择项目”页。
      2. 在向导的“名称和位置”页中,执行以下操作(如下图所示):
        • 在“项目名称”字段中,键入 HelloWorldApp
        • 将“使用专用文件夹存储库”复选框保留为未选中状态。
        • 在“创建主类”字段中,键入 helloworldapp.HelloWorldApp
        • 将“设置为主项目”复选框保留为选中状态。

        NetBeans IDE 中“新建项目”向导的“名称和位置”页。

      3. 单击“完成”。

      将创建项目并在 IDE 中打开该项目。此时,您应该看到以下组件:

      • “项目”窗口,其中包含项目组件(包括源文件、代码所依赖的库等)的树视图。
      • 源代码编辑器窗口,其中打开了一个名为 HelloWorldApp 的文件。
      • “导航”窗口,可以使用该窗口在选定类内部的元素之间快速导航。
      • “任务”窗口,列出编译错误以及标有 XXX 和 TODO 等关键字的其他任务。

      打开了 HelloWorldApp 项目的 NetBeans IDE。

      向生成的源文件中添加代码

      由于您在“新建项目”向导中将“创建主类”复选框保留为选中状态,因此 IDE 已为您创建了一个框架类。可以向框架代码中添加 "Hello World!" 消息,方法是将以下行:

      // TODO code application logic here

      替换为以下行:

      System.out.println("Hello World!");

      通过选择“文件”>“保存”来保存所做的更改。

      该文件应与下面的代码样例类似。

      /*
      * To change this template, choose Tools | Templates
      * and open the template in the editor.
      */

      package helloworldapp;

      /**
      *
      * @author Patrick Keegan
      */
      public class HelloWorldApp {

      /**
      * @param args the command line arguments
      */
      public static void main(String[] args) {
      System.out.println("Hello World!");
      }

      }

      编译并运行程序

      由于 IDE 提供了“在保存时编译”功能,因此您不必手动编译项目即可在 IDE 中运行它。保存 Java 源文件时,IDE 会自动编译它。

      运行程序:

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

      下图显示了您现在应看到的内容。

      程序在“输出”窗口中显示 "Hello World!"(以及来自生成脚本的其他输出)。

      恭喜!您的程序可以正常运行!

      如果存在编译错误,将在源代码编辑器的左旁注和右旁注中用红色图标标记出来。左旁注中的图标指示对应行的错误。右旁注中的图标显示文件中出现错误的所有区域,其中包括不可见的代码行中的错误。将鼠标悬停在错误标记上,可以查看有关该错误的描述。单击右旁注中的图标,可以跳至出现该错误的代码行。

      生成并部署应用程序

      编写并试运行应用程序后,可以使用“清理并生成”命令来生成应用程序以进行部署。使用“清理并生成”命令时,IDE 会运行一个执行以下任务的生成脚本:

      • 删除所有以前编译的文件以及其他生成输出。
      • 重新编译应用程序并生成包含编译后的文件的 JAR 文件。

      生成应用程序:

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

      可以通过打开“文件”窗口并展开 "HelloWorldApp" 节点来查看生成输出。编译后的字节代码文件 HelloWorldApp.class 位于build/classes/helloworldapp 子节点内。包含 HelloWorldApp.class 的可部署 JAR 文件位于 dist 节点内。

      此图显示“文件”窗口,其中展开了 HelloWorldApp 的节点以显示 "build" 和 "dist" 子节点的内容。

      现在,您已了解如何在 IDE 中完成一些最常见的编程任务。


      想学习更多,请看Netbeans中文官方网站:
      http://zh-cn.netbeans.org/index.html

Open Toolbar