您的位置:首页 > 编程语言 > Java开发

创建、导入和配置 Java 项目

2012-08-17 11:29 253 查看

创建、导入和配置 Java 项目

本指南将简要介绍 NetBeans IDE 中的一些用于设置和配置 Java 项目的主要功能。此外,还将提供有关如何对 IDE 生成的生成脚本进行定制配置的信息。

目录



项目基本概念

项目
Ant

创建项目
导入项目

导入 Eclipse 工作区
基于现有源代码设置 Java 项目
基于现有源代码设置 Web 项目
自由格式项目

配置类路径和其他项目设置

设置主项目
设置项目中的目标 JDK
管理项目的类路径
管理项目之间的依赖关系
共享项目库
使 JDK 的 Javadoc 在 IDE 中可用
启用 Java Web Start

生成应用程序

生成项目、包和文件
在保存时编译
修复编译错误
过滤输出文件

运行应用程序

运行项目和文件
定制运行时选项
设置运行时类路径
设置主类和运行时参数
设置 JVM 参数

定制生成脚本

编辑和运行 Ant 脚本
编写定制 Ant 任务

另请参见

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

软件或资源要求的版本
NetBeans IDE版本 7.1
Java Development Kit (JDK)版本 6 或更高版本

项目基本概念

此部分将简要介绍一些有关 IDE 项目系统的背景信息。

项目

在 IDE 中,您始终在项目内工作。除了源文件以外,IDE 项目还包含 meta 数据,这些数据说明类路径上所包含的内容以及如何生成和运行项目等。IDE 将项目信息存储在一个项目文件夹中,该文件夹包括一个 Ant 生成脚本和一个属性文件(它们用于控制生成和运行设置),还包括一个
project.xml
文件(该文件用于将 Ant 目标映射到 IDE 命令)。

注意:虽然缺省情况下 IDE 将源目录放置在项目文件夹内,但是源目录并非必须位于项目文件夹中。

Ant

Apache Ant 是基于 Java 的生成工具,用于使开发的生成环境和运行环境标准化和自动化。IDE 的项目系统直接基于 Ant。所有项目命令(如 "Clean and Build Project"(清理并生成项目)和 ""Clean and Build Project"(清理并生成项目)"(调试))均调用项目 Ant 脚本中的目标。因此,您可以在 IDE 外部生成和运行项目,这与在 IDE 内部生成和运行项目完全相同。

无需了解 Ant 即可使用 IDE。您可以在项目的 "Project Properties"(项目属性)对话框中设置所有基本的编译和运行时选项,IDE 会自动更新项目的 Ant 脚本。如果您熟悉 Ant,则可以定制标准项目的 Ant 脚本,或者为项目编写您自己的 Ant 脚本。

创建项目

创建新项目:

选择 "File"(文件)> "New Project"(新建项目)(在 Windows 上为 Ctrl-Shift-N 组合键/在 Mac OS X 上为 Cmd-Shift-N 组合键)。

在出现 "New Project"(新建项目)向导时,为项目选择合适的模板并完成向导中的其余步骤。项目模板图标可能以灰色显示,这表示尚未激活此项目类型。继续创建项目,将在 IDE 中激活该功能。

IDE 包含以下用于创建 Java 和 Java Web 应用程序的标准项目模板:

Java Application(Java 应用程序)。创建带有主类的框架 Java SE 项目。有关使用此模板的简明教程,请参见开发和部署常规 Java 应用程序

Java Class Library(Java 类库)。创建不带主类的框架 Java 类库。有关使用此模板的简明教程,请参见开发和部署常规 Java 应用程序
Java Project with Existing Sources(基于现有源代码的 Java 项目)。基于您自己的 Java 源代码创建 Java SE 项目。请参见下面的基于现有源代码设置 Java 项目部分。
Web Application(Web 应用程序)。创建框架 Web 应用程序,其中包括用于添加各种 Web 框架的选项。有关使用此模板的示例,请参见
Web 应用程序开发简介
Web Application with Existing Sources(基于现有源代码的 Web 应用程序)。基于您自己的 Web 源代码和 Java 源代码创建 Web 项目。请参见下面的基于现有源代码设置 Web 项目部分。

此外,IDE 还包含用于创建 EJB 模块、企业应用程序和 Java ME 应用程序等的模板。

Java 和 Web 项目类别还具有自由格式项目模板。通过自由格式模板,可以将现有 Ant 脚本用于项目,但需要手动进行配置。请参见下面的自由格式项目

创建完项目后,该项目在 IDE 中打开,并在 "Projects"(项目)窗口中显示其逻辑结构,同时在 "Files"(文件)窗口中显示其文件结构:

"Projects"(项目)窗口是项目源的主入口点。它将显示重要项目内容(如 Java 包和 Web 页)的逻辑视图。通过右键单击任意项目节点,可以访问一个包含各种命令的弹出式菜单,这些命令用于生成、运行和调试项目,以及打开 "Project Properties"(项目属性)对话框。通过选择 "Window"(窗口)> "Projects"(项目)(在 Windows 上为 Ctrl-1 组合键/在 Mac OS X 上为 Cmd-1 组合键),可以打开 "Projects"(项目)窗口。
"Files"(文件)窗口显示了基于目录的项目视图,其中包括 "Projects"(项目)窗口中未显示的文件和文件夹。在 "Files"(文件)窗口中,可以打开并编辑项目配置文件,如项目的生成脚本和属性文件。此外,还可以查看生成输出,如编译的类、JAR 文件、WAR 文件和生成的 Javadoc 文档。通过选择 "Window"(窗口)> "Files"(文件)(在 Windows 上为 Ctrl-2 组合键/在 Mac OS X 上为 Cmd-2 组合键),可以打开 "Files"(文件)窗口。



注意:如果需要访问项目目录之外的文件和目录,则可以使用 "Favorites"(收藏夹)窗口。通过选择 "Window"(窗口)> "Favorites"(收藏夹)(在 Windows 上为 Ctrl-3 组合键/在 Mac OS X 上为 Cmd-3 组合键),可以打开 "Favorites"(收藏夹)窗口。要将某个文件夹或文件添加到 "Favorites"(收藏夹)窗口,请在 "Favorites"(收藏夹)窗口中单击鼠标右键,然后选择
"Add to Favorites"(添加到收藏夹)。

导入项目

此部分将介绍最初在 IDE 中导入项目时所执行的操作。

导入 Eclipse 工作区

对于 Eclipse 项目,可以使用 "Import Eclipse Project"(导入 Eclipse 项目)向导帮助您基于 Eclipse 工作区中的项目创建 NetBeans 项目,并导入项目类路径和其他设置。在使用 "Import Eclipse Project"(导入 Eclipse 项目)向导时,无需手动创建和配置 NetBeans 项目。通过选择 "File"(文件)> "Import Project"(导入项目)> "Eclipse Project"(Eclipse 项目),可以打开该向导。有关该向导的工作原理以及如何同时处理
Eclipse 项目和 NetBeans 项目的信息,请参见将 Eclipse 项目导入 NetBeans IDE

基于现有源代码设置 Java 项目

对于在 NetBeans 外部开发的其他 Java 项目,可以使用 "New Project"(新建项目)向导中的 "Existing Sources"(现有源代码)模板创建 NetBeans 项目。在向导中,您可以标识源代码的位置并指定 NetBeans 项目 meta 数据的位置。然后,可以使用 "Project Properties"(项目属性)对话框配置项目

为现有 Java 应用程序设置 NetBeans 项目:

选择 "File"(文件)> "New Project"(新建项目)(在 Windows 上为 Ctrl-Shift-N 组合键/在 Mac OS X 上为 Cmd-Shift-N 组合键)。

选择 "Java" > "Java Project with Existing Sources"(基于现有源代码的 Java 项目)。单击 "Next"(下一步)。

在向导的 "Name and Location"(名称和位置)页中,执行以下步骤:

键入项目名称。
(可选)更改项目文件夹的位置。
(可选)更改 IDE 使用的生成脚本的名称。如果已存在用于生成源代码的生成脚本
build.xml
,则可能需要执行此操作。
(可选)选中 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)复选框,并指定库文件夹的位置。有关此选项的详细信息,请参见共享项目库
(可选)选中 "Set as Main Project"(设置为主项目)复选框。如果选中此选项,则可以对该项目应用 "Clean and Build Main Project"(清理并生成主项目)(Shift-F11) 等命令的快捷键。

单击 "Next"(下一步)以转至该向导的 "Existing Sources"(现有源代码)页。
在 "Source Packages Folder"(源包文件夹)窗格中,单击 "Add Folder"(添加文件夹)。然后,导航至源并选择源根目录,再单击 "Open"(打开)。
在添加包含源代码的文件夹时,添加的文件夹必须包含包树中的最高层文件夹。例如,对于
com.mycompany.myapp.ui
包,添加的文件夹应包含
com
文件夹。

(可选)在 "Test Package Folders"(测试包文件夹)窗格中,单击 "Add Folder"(添加文件夹)以选择包含 JUnit 包文件夹的文件夹。

单击 "Next"(下一步),前进至该向导的 "Includes & Excludes"(包括和排除)页。
(可选)在该向导的 "Includes & Excludes"(包括和排除)页中,为应包括在项目中或应从项目中排除的任何文件输入文件名模式。缺省情况下,会包括源根目录中的所有文件。
单击 "Finish"(完成)。

基于现有源代码设置 Web 项目

对于在 NetBeans 外部开发的 Web 项目,可以使用 "New Project"(新建项目)向导中的 "Existing Sources"(现有源代码)模板创建 NetBeans 项目。在向导中,您可以标识源代码的位置并指定 NetBeans 项目 meta 数据的位置。然后,可以使用 "Project Properties"(项目属性)对话框配置项目

注意:如果项目最初是在 Eclipse 中开发的,则可以使用 "Import Eclipse Project"(导入 Eclipse 项目)向导而不是 "New Project"(新建项目)向导,这样可以节省时间。使用 "Import Eclipse Project"(导入 Eclipse 项目)向导可以同时导入多个项目,包括这些项目的配置。请参见将
Eclipse 项目导入 NetBeans IDE。
为现有 Web 应用程序设置 NetBeans 项目:

选择 "File"(文件)> "New Project"(新建项目)(在 Windows 上为 Ctrl-Shift-N 组合键/在 Mac OS X 上为 Cmd-Shift-N 组合键)。

选择 "Java Web" > "Web Application with Existing Sources"(基于现有源代码的 Web 应用程序)。单击 "Next"(下一步)。

在向导的 "Name and Location"(名称和位置)页中,执行以下步骤:

在 "Location"(位置)字段中,输入包含 Web 应用程序的源根文件夹和 Web 页文件夹的文件夹。
键入项目名称。
(可选)更改项目文件夹的位置。

(可选)选中 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)复选框,并指定库文件夹的位置。有关此选项的详细信息,请参见在 NetBeans IDE 中共享项目库
(可选)选中 "Set as Main Project"(设置为主项目)复选框。如果选中此选项,则可以对该项目应用 "Clean and Build Main Project"(清理并生成主项目)(Shift-F11) 等命令的快捷键。
单击 "Next"(下一步)以转至该向导的 "Server and Settings"(服务器和设置)页。
(可选)将项目添加到现有企业应用程序。
选择要部署到的服务器。如果未显示所需的服务器,请单击 "Add"(添加)以在 IDE 中注册该服务器。
将源代码级别设置为运行应用程序时要使用的 Java 版本。
(可选)调整上下文路径。缺省情况下,上下文路径基于项目名称。
单击 "Next"(下一步)以转至该向导的 "Existing Sources and Libraries"(现有源代码和库)页。
验证该页上的所有字段,如 "Web Pages Folder"(Web 页文件夹)和 "Source Package Folders"(源包文件夹)的值。
单击 "Finish"(完成)。

自由格式项目

对于自由格式项目,也提供了项目模板。在自由格式项目中,IDE 使用现有 Ant 脚本中的目标生成、运行、清理、测试和调试应用程序。如果 Ant 脚本不包含用于实现其中某些功能的目标,则将无法对该项目使用这些功能。要实现这些功能,您需要在 Ant 脚本或辅助 Ant 脚本中编写目标。

通常情况下,最好使用标准的“基于现有源代码”项目模板导入项目。对于 Eclipse 项目,最好使用“导入项目”功能,通过该功能可以创建和配置标准项目。标准项目便于长期维护。但是,如果您具有一个基于 Ant 的现有项目,且该项目包含无法在标准项目中复制的复杂或特殊配置,则自由格式项目模板会非常有用。例如,如果要导入一个包含多个源根目录的项目,且每个源根目录都具有不同的类路径,同时您无法将这些源根目录拆分为不同的项目,则可能需要使用自由格式项目模板。

本指南重点介绍标准项目。有关设置自由格式项目的详细信息,请参见自由格式项目的高级配置

配置类路径和其他项目设置

此部分将介绍在设置项目时需要执行的一些最常见任务,如设置项目的目标 JDK、设置类路径、创建项目之间的依赖关系以及在项目之间和用户之间共享库。

设置主项目

在开发由很多源文件夹组成的大型应用程序时,经常会将代码拆分为若干个单独的项目。通常,其中的一个项目会作为应用程序的入口点。为了让 IDE 知道哪个项目是应用程序的主入口点,可以将一个项目设置为主项目。IDE 提供了专门用于主项目的命令。例如,运行 "Clean and Build Main Project"(清理并生成主项目)命令可以生成主项目及其所有必需项目。

将项目设置为主项目:

在 "Projects"(项目)窗口中右键单击项目节点,然后选择 "Set as Main Project"(设置为主项目)。

一次只能有一个项目是主项目。

设置项目中的目标 JDK

在 IDE 中,可以注册多个 Java 平台,并将 Javadoc 和源代码连接到每个平台上。切换标准项目的目标 JDK 将执行以下操作:

提供新目标 JDK 的类,以用于代码完成。
显示目标 JDK 的源代码和 Javadoc 文档(如果可用)。
使用目标 JDK 的可执行文件(
javac
java
)编译和执行应用程序。
针对目标 JDK 的库来编译源代码。

缺省情况下,IDE 将其运行时所使用的 Java SE 平台 (JDK) 版本作为 IDE 项目的缺省 Java 平台。通过选择 "Help"(帮助)> "About"(关于),可以查看 IDE 的 JDK 版本。JDK 版本在 "Java" 字段中列出。

使用不同的 JDK 版本运行 IDE:

从命令行中使用以下开关启动 IDE。
--jdkhome jdk-home-dir

或者,在
/etc/netbeans.conf
文件中设置 JDK,该文件位于 IDE 的安装文件夹中。

注册新的 Java 平台:

从主菜单中选择 "Tools"(工具)> "Java Platforms"(Java 平台)。
指定包含 Java 平台的文件夹以及调试所需的源代码和 Javadoc。



切换标准项目的目标 JDK:

右键单击项目节点,选择 "Properties"(属性)。
选择 "Libraries"(库)面板。
更改 "Java Platform"(Java 平台)属性。

管理项目的类路径

通过将一组类文件添加到项目的类路径中,可以通知 IDE 在编译和执行期间项目应该能够访问哪些类。IDE 还使用类路径设置来启用代码完成、自动突出显示编译错误以及重构。您可以在 "Project Properties"(项目属性)对话框中编辑现有项目的类路径声明。

在标准 Java 项目中,IDE 将为编译和运行项目以及编译和运行 JUnit 测试(用于 Java SE 应用程序)保留单独的类路径。IDE 自动将项目编译类路径中的所有内容添加到项目的运行时类路径中。

可以使用下列任一方法修改项目的类路径:

右键单击项目的节点,选择 "Properties"(属性),选择 "Libraries"(库)类别,然后修改所列的类路径条目。
在 "Projects"(项目)窗口中右键单击 "Libraries"(库)节点,然后选择 "Add Project"(添加项目)、"Add Library"(添加库)或 "Add JAR/Folder"(添加 JAR/文件夹)。

如果已经在库管理器中将 Javadoc 和源文件附加到某个 JAR 文件,则在项目的类路径中注册该 JAR 文件时,IDE 会自动将 Javadoc 和源文件添加到项目中。可以步入类并在 Javadoc 页中查找类,而无需配置任何其他内容。



管理项目之间的依赖关系

如果应用程序由多个项目组成,则必须设置项目之间的类路径依赖关系。通常,应设置一个包含项目主类(在 Java SE 项目中)的主项目和几个必需项目。必需项目是指已添加到其他项目类路径中的项目。在清理并生成项目时,IDE 还会清理并生成其必需项目。接收项目也可以使用必需项目的 Javadoc 和源代码。

通过在 "Projects"(项目)窗口中右键单击 "Libraries"(库)节点,可以将任何必需项目添加到您的项目中;或者,也可以通过在 "Project Properties"(项目属性)对话框的 "Libraries"(库)标签中指定它们来进行添加。在添加必需项目时,请选择要将其 JAR 文件添加到类路径的项目文件夹(文件选择器将显示 IDE 项目文件夹的图标


)。在 "Project Properties"(项目属性)对话框中添加项目时,请确保选中了 "Build Projects on Classpath"(依据类路径生成项目)复选框。

如果要将自由格式项目添加到标准项目的类路径中,则必须将自由格式项目的 JAR 文件添加到标准项目的类路径中。要执行此操作,必须先在自由格式项目的 "Project properties"(项目属性)对话框的 "Output"(输出)面板中声明自由格式项目的所有输出文件。

共享项目库

由于 NetBeans IDE 项目系统基于 Ant,因此 NetBeans 项目通常可以在不同用户之间移植,无论他们是否使用 IDE。但是,缺省情况下,项目生成脚本引用库的方式依赖于每位用户的特定因素,"Library Manager"(库管理器)对话框中定义的库尤其如此。

例如,通常可以将项目置于 zip 文件中,然后将其提供给其他用户来解压缩和运行。但是,如果项目依赖于 "Library Manager"(库管理器)对话框中指定的定制库,则其他库最初在生成项目时可能会出现问题,因为未解析对定制库的引用。

另一个可能的不便之处是库存储在不同的位置,具体位置取决于其来源。IDE 附带的库储存在 IDE 安装目录下的不同文件夹中。此类情形还包括 Swing Layout Extensions、Bean 绑定和数据库驱动程序的库。

要解决这些问题,可以指定一个专用文件夹来存储项目库。此外,在引用这些库时,您可以控制使用相对路径还是绝对路径。

这种灵活性能够使您更轻松地处理以下情况:

您创建了一个项目,并且需要使其他用户可以使用或构建它,无论他们是否使用 IDE。他们应该可以通过版本控制签出或者解压您提供的 ZIP 文件来访问该项目。然后他们应该无需额外配置就可以构建应用程序。
您必须从现有项目开始,并遵守关于项目库储存位置的严格约定(无论您的构建脚本使用相对引用还是绝对引用来访问这些库)。

您可以为标准 Java SE、Web 和企业项目设置一个专用库文件夹。可以在创建项目时(在 "New Project"(新建项目)向导中)设置库文件夹,也可以在以后通过 "Project properties"(项目属性)对话框的 "Libraries"(库)标签进行设置。

在创建项目后将常规 Java 项目的库设置为可共享的库:

选择 "File"(文件)> "New Project"(新建项目)。
在向导的 "Java" 类别中选择一个标准模板。然后,单击 "Next"(下一步)。
在向导的 "Name and Location"(名称和位置)页中,选择 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)复选框。
在 "Libraries Folder"(库文件夹)字段中,选择要存储的库的位置。
如果库已经包含在 IDE 中,则会将这些库复制到您指定的文件夹中。

在创建项目时将 Web 或 Java EE 项目的库设置为可共享的库:

选择 "File"(文件)> "New Project"(新建项目)。
在向导的 "Web" 类别中选择一个标准模板。然后,单击 "Next"(下一步)。
在向导的 "Name and Location"(名称和位置)页中,选择 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)复选框。
在 "Libraries Folder"(库文件夹)字段中,选择要存储的库的位置。
如果库已经包含在 IDE 中,则会将这些库复制到您指定的文件夹中。

将现有项目的库设置为可共享的库:

右键单击项目节点,选择 "Properties"(属性)。
在 "Project Properties"(项目属性)对话框中,选择 "Libraries"(库)节点。
在 "Libraries"(库)面板中,单击 "Browse"(浏览)打开 "New Libraries Folder"(新建库文件夹)向导。
在向导的 "Library Folder"(库文件夹)页中,输入库的位置并单击 "Next"(下一步)。

您可以以相对引用或绝对引用的形式输入该位置。
在向导的 "Actions"(操作)面板中,为每一个列出的库验证选定的操作。在大多数情况下,IDE 都会检测最适合于该库的操作。
可用的操作包括:

Copy Library JAR Files to New Libraries Folder(将库 JAR 文件复制到新库文件夹)。如果库不在所选的文件夹中,并且要将库 JAR 文件放在该位置,则使用此选项。

Use Relative Path to Library JAR Files(使用库 JAR 文件的相对路径)。如果库不在库文件夹中,并且需要使用相对路径访问现有位置中的库,则使用此选项。该库的相对引用条目将会添加到库文件夹的
nblibraries.properties 文件中。
Use Absolute Path to Library JAR Files(使用库 JAR 文件的绝对路径)。如果库不在库文件夹中,并且需要使用绝对路径访问现有位置中的库,则使用此选项。该库的绝对引用条目将会添加到哭文件夹的
nblibraries.properties 文件中。
Use Existing Library in Libraries Folder(使用库文件夹中的现有库)。如果库文件夹中已存在库副本,并且要使用该库副本,则使用此选项。

单击 "Finish"(完成)退出该向导。
单击 "OK"(确定)退出 "Project Properties"(项目属性)对话框。

注意:也可以使用 "Project Properties"(项目属性)对话框的 "Libraries"(库)节点来更改库文件夹的位置。如果已经指定了库文件夹,请单击 "Browse"(浏览)打开一个文件选择程序,而不是 "New Libraries Folder"(新建库文件夹)向导。

使 Javadoc 在 IDE 中可用

要在 NetBeans IDE 中查看 JavaSE API 文档,请使用 "Source"(源)> "Show Documentation"(显示文档)命令,或者从主菜单中选择 "Window"(窗口)> "Other"(其他)> "Javadoc",以便在单独的窗口中查看 API 文档。

不过,对于某些第三方库,则无法使用 API 文档。在这些情况下,必须手动将 Javadoc 资源与 IDE 相关联。

要使 API 文档可用于“显示 Javadoc”命令,请执行以下操作:

下载 Javadoc API 文档源文件。
选择 "Tools"(工具)> "Libraries"(库)。
在 "Libraries"(库)列表中,选择项目所使用的库。
单击 "Javadoc" 标签。
单击 "Add ZIP/Folder"(添加 ZIP/文件夹)按钮,然后导航至系统上包含 Javadoc API 文档的 zip 文件或文件夹。选择该 zip 文件或文件夹,然后单击 "Add ZIP/Folder"(添加 ZIP/文件夹)按钮。
单击 "OK"(确定)。

为应用程序启用 Java Web Start

您可以在 IDE 中配置应用程序以通过 Java Web Start 运行。为此,请使用 "Project Properties"(项目属性)窗口中的 Java Web Start 类别。有关如何启用 Java Web Start 的详细信息,请参见在 NetBeans IDE 中启用 Java Web Start 教程。

为应用程序配置 Java Web Start:

右键单击项目节点,选择 "Properties"(属性)。
在 "Project Properties"(项目属性)对话框中,选择 "Application"(应用程序)> "Web Start" 节点。
选中 "Enable Web Start"(启用 Web Start)复选框,然后按照在 NetBeans IDE 中启用 Java Web Start 的说明配置 Java Web Start 设置。

生成应用程序

此部分将介绍如何在 IDE 中生成标准项目、如何对生成过程进行基础定制,以及如何处理编译错误。

生成项目、包和文件

在 IDE 中进行编译非常简单。假定您已正确设置项目的编译类路径,只需选择要编译的项目、包或文件,并从“运行”菜单中选择相应的“生成”或“编译”命令。执行这些操作后,IDE 将编译文件。

如果已为 Java 项目启用了“在保存时编译”功能(或者为 Java Web 或企业项目启用了“在保存时部署”功能),则在保存项目文件时,IDE 会自动对其进行编译。有关详细信息,请参见下面的在保存时编译部分。

生成用于部署的应用程序:

选择 "Run"(运行)> "Clean and Build Project"(清理并生成项目)。
将删除以前编译的所有文件以及可分发的输出(如 JAR 文件)。然后,会重新编译这些文件并生成新输出。此外,还会创建
build
文件夹以存放编译的类。同时,生成
dist
以存放可分发的输出,如 JAR 文件和 Javadoc 文档。通过打开 "Files"(文件)窗口,可以查看生成输出。

每次调用编译命令时,IDE 都会在 "Output"(输出)窗口中显示输出,其中包括遇到的任何编译错误,如下面的修复编译错误部分所述。

在保存时编译

使用 IDE 的“在保存时编译”功能,您可以节省在 IDE 中运行和调试项目的时间。为项目启用“在保存时编译”功能后,项目文件即会在保存时进行编译。在 IDE 中运行、测试、调试和分析项目时,编译的文件会存储在 IDE 使用的高速缓存中。这样,您不必先等待生成应用程序,即可对其进行测试和调试。

启用“在保存时编译”功能后,会产生以下影响:

IDE 会在保存项目文件时对其进行编译,这样便可以随时在 IDE 中运行或调试项目。
禁用 "Build"(生成)命令。如果要在不使用 "Clean and Build"(清理并生成)命令的情况下重新生成 JAR 文件,则必须禁用“在保存时编译”功能。
在使用 "Run"(运行)、"Debug"(调试)、"Profile"(分析)或 "Test"(测试)命令时,不使用项目的 Ant 脚本。如果为其中某个命令定制了生成脚本,则将忽略这些定制。
在保存对项目文件所做的更改时,通过项目生成的 JAR 文件将不会更新为最新。如果要生成或重新生成 JAR 文件,则需要使用 "Clean and Build"(清理并生成)命令。无论是否启用了“在保存时编译”功能,"Clean and Build"(清理并生成)命令始终都会使用项目的 Ant 脚本。

缺省情况下,将会为创建的新项目启用“在保存时编译”功能。对于现有项目,“在保存时编译”功能处于禁用状态。

为 Java 项目启用或禁用“在保存时编译”功能:

右键单击项目节点,选择 "Properties"(属性)。
选择 "Compiling "(编译)节点,然后设置 " Compile on Save"(在保存时编译)属性。

同样,IDE 为 Java Web 和企业应用程序提供了“在保存时部署”功能。如果为某个项目启用了“在保存时部署”功能,并且该项目已通过 IDE 部署到服务器,则在更改项目文件后,会立即将其重新部署到服务器。要使“在保存时部署”功能可用于 GlassFish V2,GlassFish 实例必须选定了 "Directory Deployment Enabled"(启用目录部署)选项。

为 Java Web 或企业项目启用或禁用“在保存时部署”功能:

右键单击项目节点,选择 "Properties"(属性)。
选择 "Run"(运行)节点,然后设置 ""Deploy on Save"(在保存时部署)属性。

为 GlassFish V2 启用目录部署:

选择 "Tools"(工具)> "Servers"(服务器)。
选择服务器。
选择 "Options"(选项)标签。
选择 "Directory Deployment Enabled"(启用目录部署)选项。

修复编译错误

IDE 在 "Output"(输出)窗口中显示输出消息和任何编译错误。在发生编译错误、调试程序、生成 Javadoc 文档等情况下,会自动显示此多标签窗口。此外,还可通过选择 "Window"(窗口)> "Output"(输出)(在 Windows 上为 Ctrl-4 组合键/在 Mac OS X 上为 Cmd-4 组合键)打开此窗口。

此外,编译错误还会显示在 "Tasks"(任务)窗口中,并在源代码编辑器中进行标记。

"Output"(输出)窗口的一个重要功能就是通知您在编译程序时发现的错误。错误消息会显示为带下划线的蓝色文本,并链接到产生错误的源代码行上(如下图所示)。"Output"(输出)窗口还提供了其他一些链接,这些链接指向在运行 Ant 生成脚本时所发现的错误。在单击 "Output"(输出)窗口中的错误链接时,源代码编辑器会自动跳至包含该错误的行上。



Ant 脚本运行的每个操作(如编译、运行和调试文件)都将其输出发送到相同的 "Output"(输出)窗口标签。如果需要保存 "Output"(输出)窗口中显示的消息,则可以复制该消息,并将其粘贴到一个单独的文件中。此外,还可以设置 Ant,使其在新的 "Output"(输出)窗口中输出每个新目标的命令输出,方法是:选择 "Tools"(工具)> "Options"(选项),选择 "Miscellaneous"(其他)类别,单击 "Ant" 标签,然后取消选中 "Reuse Output Tabs from
Finished Processes"(重用完成进程中的输出标签)属性的复选框。

过滤输出文件

在创建 JAR 文件或 WAR 文件时,通常只需包含编译的
.class
文件以及位于源目录中的任何其他资源文件,如资源包或 XML 文档。缺省过滤器会通过排除输出文件中的所有
.java
.nbattrs
.form
文件来实现这一目的。

您可以使用正则表达式创建其他过滤器来控制输出文件。要指定需排除的文件,请在 "Projects"(项目)窗口中右键单击项目,然后选择 "Properties"(属性)以打开 "Project Properties"(项目属性)对话框。在左窗格中,单击 "Packaging"(打包)。在右窗格的相应文本框中,输入正则表达式以指定在打包 JAR 或 WAR 文件时要排除的文件。除了缺省表达式以外,您还可以使用下面所列的一些正则表达式:

正则表达式描述
\.html$
排除所有 HTML 文件
\.java$
排除所有 Java 文件
(\.html$)|(\.java$)
排除所有 HTML 和 Java 文件
(Key)|(\.gif$)
排除所有 GIF 文件和名称包含
Key
的所有文件
有关正则表达式语法的指南,请参见 jakarta.apache.org

运行应用程序

此部分将介绍如何在 IDE 中运行项目以及如何配置项目的主类、运行时参数、VM 参数和工作目录。

运行项目和文件

对于 Java 项目,通常会将包含程序主类的项目设置为主项目。对于 Web 项目,主项目是第一个部署的项目。要运行项目、包或文件,请选择下列任一操作:

在主菜单中,选择 "Run"(运行)> "Run Main Project"(运行主项目)(F6),以运行主项目。或者,也可以使用工具栏中的 "Run Main Project"(运行主项目)按钮。
在 "Projects"(项目)窗口中,右键单击项目,然后选择 "Run"(运行)以运行项目。请注意,对于 Java 项目,项目必须具有主类。
在 "Projects"(项目)窗口中,右键单击文件,然后选择 "Run File"(运行文件)(Shift+F6) 以运行文件。此外,也可以在主菜单中选择 "Run"(运行)> "Run File"(运行文件)> "Run Filename"(运行 <文件名>)(Shift+F6 组合键),以运行可运行的类。

运行项目时,IDE 在 "Output"(输出)窗口中显示任何编译错误和输出。有关详细信息,请参见修复编译错误

注意:如果为项目启用了“在保存时编译”功能,则“运行项目”命令会处理在保存项目文件时所创建的类文件。同时,不会使用 Ant 生成脚本。如果在生成脚本中定义了定制步骤,则不会执行这些步骤。如果希望在使用 "Run Project"(运行项目)、"Debug Project"(调试项目)和 "Profile Project"(分析项目)命令时发生完整的生成过程,请禁用“在保存时编译”功能。

定制运行时选项

缺省情况下,IDE 不指定主类、运行时参数或 JVM 参数。每个标准项目的运行时类路径都包含项目的已编译类以及项目编译类路径中的所有内容。您可以查看项目的编译类路径,方法是:打开 "Project Properties"(项目属性)对话框,在 "Categories"(类别)窗格中选择 "Libraries"(库)节点,然后在右窗格中单击 "Compile"(编译)标签。

要更改项目的运行时选项,请在 "Projects"(项目)窗口中右键单击项目节点,然后选择 "Properties"(属性)以打开 "Projects Properties"(项目属性)对话框。接下来,在 "Categories"(类别)窗格中选择 "Libraries"(库)节点,然后在该对话框的右窗格中单击 "Run"(运行)标签。请注意,要访问主类、程序参数、用于执行程序的工作目录以及 VM 选项的设置,必须选择 "Run"(运行)节点。在下一部分中,我们将详细介绍如何配置运行时类路径。



设置运行时类路径

要将项目、库、JAR 文件和文件夹添加到项目的运行时类路径中,请使用 "Project Properties"(项目属性)对话框中 "Run-time Libraries"(运行时库)列表右侧的相应按钮。

如果项目在运行时通过间接接口或反射(如 JDBC 驱动程序或 JAXP 实现)动态使用特殊库,则必须将这些库添加到运行时类路径中。如果项目之间的运行时依赖关系与项目之间的编译依赖关系不匹配,则还必须调整运行时类路径。例如,假定项目 A 依赖项目 B 进行编译,项目 B 依赖项目 C 进行编译,但项目 A 不依赖项目 C 进行编译。这就意味着项目 A 在其运行时类路径中仅包含项目 B。如果项目 A 在执行过程中同时需要项目 B 和项目 C,则必须将项目 C 添加到项目 A 的运行时类路径中。

设置主类和运行时参数

要设置项目的主类,请在 "Project Properties"(项目属性)对话框的 "Categories"(类别)窗格中选择 "Run"(运行)节点,然后在 "Main Class"(主类)字段中键入全限定名称(例如
org.myCompany.myLib.MyLibClass
)。主类必须位于项目中,或者位于项目运行时类路径上的某个 JAR 文件或库中。之后,在 "Arguments"(参数)字段中键入任何所需的运行时参数。

如果使用 "Browse"(浏览)按钮选择项目主类,则文件选择器只显示项目源目录中的类。如果要指定类路径上某个库中的类,则必须在 "Main Class"(主类)字段中键入该类的全限定名称。

设置 JVM 参数

您可以在 "Project Properties"(项目属性)对话框中指定项目的 JVM 参数。方法是:打开 "Project Properties"(项目属性)对话框,在 "Categories"(类别)窗格中单击 "Run"(运行),然后在 "VM Options"(VM 选项”)字段中键入以空格分隔的 JVM 参数列表。

可以通过在 "VM Options"(VM 选项”)字段中键入以下内容来设置系统属性:

-Dname=value


定制生成脚本

在标准项目中,IDE 将基于您在 "New Project"(新建项目)向导和项目的 "Project Properties"(项目属性)对话框中输入的选项来创建生成脚本。您可以在项目的 "Project Properties"(项目属性)对话框中设置所有基本的编译和运行时选项,IDE 会自动更新项目的 Ant 脚本。如果对在 "Project Properties"(项目属性)对话框中无法处理的生成过程有其他要求,则可以直接修改生成脚本。

标准项目的主 Ant 脚本是
build.xml
。每次运行 IDE 命令时,IDE 都会调用
build.xml
中的目标。此文件包含一条导入
nbproject/build-impl.xml
(其中包含 IDE 生成的生成目标)的 import 语句。在
build.xml
中,可以覆盖
nbproject/build-impl.xml
中的任何目标或编写新目标。请勿直接编辑
nbproject/build-impl.xml
,因为会基于 "Project Properties"(项目属性)对话框中所做的更改重新生成该文件。

此外,生成脚本会使用可手动编辑的
nbproject/project.properties


对于标准项目,可以通过执行下列任一操作来定制生成过程:

创建项目时在 "New Project"(新建项目)向导中输入基本选项(如类路径设置和 JAR 过滤器),或者以后在 "Project Properties"(项目属性)对话框中进行设置。
编辑
nbproject/project.properties
中的属性。此文件存储了 Ant 属性以及有关项目的重要信息,如源文件夹和输出文件夹的位置。您可以覆盖此文件中的属性。请谨慎编辑此文件。例如,每次清理项目时,都会删除输出文件夹。因此,如果未事先将清理目标配置为不删除输出文件夹,则切勿将输出文件夹的位置设置为与源文件夹相同。
执行下列任一操作以定制现有 Ant 目标或创建新的 Ant 目标:

添加在运行 Ant 目标之前或之后处理的指令:
nbproject/build-impl.xml
中的每个主目标还具有可以在
build.xml
中覆盖的
-pre
-post
目标。例如,要使 RMI 可用于常规项目,请在
build.xml
中键入以下内容:
<target name="-post-compile">
<rmic base="${build.classes.dir}" includes="**/Remote*.class"/>
</target>


更改 Ant 目标中的指令。将
nbproject/build-impl.xml
中的目标复制到
build.xml
,然后对目标执行任何更改。
build.xml
中创建新目标。您还可以将新目标添加到 IDE 的任何现有目标的依赖关系中。覆盖
build.xml
中的现有目标,然后将新目标添加到现有目标的
depends
属性中。例如,以下代码将
new-target
目标添加到 run 目标的依赖关系中:
<target name="new-target">
<!-- target body... -->
</new-target>

<target name="run" depends="new-target,myprojname-impl.run"/>

您不必将 run 目标的主体复制到
build.xml
中。

下表列出了在重新定义 JAR 文件时需要执行的一些常见任务,它们可能会对您有所帮助:

要执行此任务请按照下列步骤执行操作
指定要添加到 JAR 文件中的文件。右键单击 "Projects"(项目)窗口中的项目节点,然后选择 "Properties"(属性)。单击 "Packaging"(打包)子节点(在 "Build"(生成)下面),然后使用 "Exclude from JAR File"(从 JAR 文件中排除)字段配置过滤器和压缩设置。有关详细信息,请参见过滤输出文件
更改 JAR 文件的名称和位置。在 "Files"(文件)窗口中,双击项目的
nbproject/project.properties
文件以在源代码编辑器中将其打开。在
dist.jar
属性中输入 JAR 文件的完整路径。
指定 JAR 文件的清单文件。
project.properties
中的
manifest.file
属性上,键入清单文件的名称。指定的文件名必须与项目的
build.xml
文件有关。请注意,如果您使用的是 Java 应用程序模板,则 IDE 将会为您创建一个清单文件。
禁止为项目生成 JAR 文件。在 "Files"(文件)窗口中,打开项目文件夹,然后打开
build.xml
。覆盖
jar
目标,使其不包含任何内容和依赖关系。例如,将以下内容添加到
build.xml
中:
<target name="jar" />

如果要查找了解 Ant 所需的资源,请参见 http://ant.apache.org/resources.html。您还可以使用插件管理器将 Ant 手册安装到 IDE 帮助系统中。方法是:选择 "Tools"(工具)> "Plugins"(插件),然后安装 Ant 文档模块。

编辑和运行 Ant 脚本

IDE 会自动识别 Ant 脚本,并将其显示为 Ant 脚本节点 (

),而不是显示为常规的 XML 文件。您可以在 "Projects"(项目)窗口、"Files"(文件)窗口或 "Favorites"(收藏夹)窗口中右键单击 Ant 脚本来访问包含一些命令的弹出式菜单。此外,还可以展开
Ant 脚本节点,以查看表示 Ant 脚本目标的子节点的列表(按字母顺序排列)。其中的每个子节点也都具有包含一些命令的弹出式菜单。

在 "Projects"(项目)窗口、"Files"(文件)和 "Favorites"(收藏夹)窗口中,Ant 脚本的子节点会采用以下方式进行标记:

图标含义

强调的 Ant 目标。这些目标包含以工具提示方式显示的描述属性。您可以在源代码编辑器中定义目标的描述属性。


常规 Ant 目标。不带描述属性的目标。
双击 Ant 脚本的任意子节点,即可跳至该目标在源代码编辑器中的相应位置。所有的常规 XML 搜索工具、选择工具和快捷键都可用于编辑 Ant 脚本,并且 IDE 为所有标准 Ant 任务提供了代码完成。

在创建要从命令行运行的目标时,需为该目标提供一个描述属性。之后,如果忘记了目标的名称或其作用,则可以从命令行运行 ant
-projecthelp <script>
命令。使用此命令时,Ant 仅列出具有描述属性的目标及其描述。尤其是当 Ant 生成脚本中存在许多目标时,可以在强调一些目标的同时取消强调另一些目标,通过这种有用的方式可以将那些常用目标和不常用目标区别开。

Projects"(项目)窗口、"Files"(文件)和 "Favorites"(收藏夹)窗口中子节点标签的字体样式指示以下信息:

正常。在当前 Ant 脚本中定义的目标。
斜体。从其他 Ant 脚本导入的目标。
灰显。无法直接运行的内部目标。内部目标的名称以 "-" 开头。
粗体。脚本的缺省目标(如果存在)。缺省目标和其他项目属性(如其名称)一起被声明为项目的属性。您可以在源代码编辑器中定义项目的缺省属性。

未列出从其他脚本导入但在导入脚本中被覆盖的目标。仅列出了覆盖目标。

在 "Projects"(项目)窗口、"Files"(文件)或 "Favorites"(收藏夹)窗口中,可以从 Ant 脚本的节点运行 Ant 脚本中的目标。要执行此操作,请右键单击 Ant 脚本节点,然后从 "Run Target"(运行目标)子菜单中选择一个目标。目标按字母顺序排列。仅列出了强调的目标。选择 Other Targets"(其他目标)可运行未使用描述属性强调的目标。这些列表中未包括内部目标,因为它们无法独立运行。

您不必使用 Ant 脚本节点的弹出式菜单也可运行目标,只需右键单击目标的节点,然后选择 "Run Target"(运行目标)即可轻松实现。



编写定制 Ant 任务

您可以使用定制 Ant 任务来扩展由 Ant 内置任务提供的功能。定制任务通常用于定义属性、创建嵌套元素,或使用
addText
方法直接编写标记之间的文本。

在 IDE 中创建定制 Ant 任务:

右键单击要在其中放置任务的包,然后选择 "New"(新建)> "Other"(其他)。
选择 "Other"(其他)类别和 "Custom Ant Task"(定制 Ant 任务)文件类型。
完成向导。

创建定制 Ant 任务文件后,其模板在源代码编辑器中打开。该模板包含 Ant 任务执行的许多常见操作的样例代码。在每段代码后,该模板还说明了如何在 Ant 脚本中使用任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: