打包和部署桌面的Java应用程序.doc
《打包和部署桌面的Java应用程序.doc》由会员分享,可在线阅读,更多相关《打包和部署桌面的Java应用程序.doc(7页珍藏版)》请在冰豆网上搜索。
打包和部署桌面的Java应用程序
http:
//netbeans.org/kb/articles/javase-deploy.html
ContributedbyMaxSauerandmaintainedbyPatrickKeegan
一个对很多起步的编程员共有的反馈问题是:
“我已经在IDE中开发了我的应用程序,那么现在我如何在IDE之外的命令行运行我的应用呢?
”。
类似的,有些人会问起:
“我如何将这个应用程序分发给其他用户,而不必将整个IDE也一起发送给他们”。
这些问题的答案是相当简单,但却不是非常明显。
本文将带您一起通过使用IDE来准备一个用来分发的应用例子,然后部署这些应用例子。
另外,本文还提供一些信息,你也许需要这些信息来配置你的系统(或者你需要将这些信息传递给你的应用程序用户)。
我们将展示一些不同的部署一个应用的途径,因而用户可以采用不同的办法来打开该应用:
l双击应用的java包(jar)文件。
l从命令行调用该应用。
l从脚本文件调用该应用。
在讨论中,我们将介绍JAR文件的基本结构以及JAR文件如何处理内部IDE项目。
预期学习时间:
主练习画30分钟任选练习15分钟。
必要条件:
本辅导课没有任何必要的先决条件。
软件或资源
要求版本
NetBeansIDE
JavaSE,Java,orAllbundle
JavaDevelopmentKit(JDK)
version6orversion5
教程练习
l设置:
安装和配置教程环境
l主要练习:
创建和分发可执行文件的JAR文件
l任选练习:
从命令行启动你的Java应用程序
设置:
安装和配置教程环境
下载文件DeploymentTutorial.zip,并且在你的系统中解压这个文件.该压缩文件包含了这个应用的源文件以及其它几个对本教程有用的文件。
在微软的Windows系统,使用WinZip或者其它类似的压缩打包软件解压该压缩文件。
为了在UNIX系统解压该压缩文件,改变路径到压缩文件的目录并在终端窗口输入如下的命令:
$unzipDeploymentTutorial.zip
主要练习:
创建和分发可执行的JAR文件
练习的目的是向您展示如何从IDE创建一个可分发的应用并且从IDE之外去运行该应用。
我们将把此应用打包成可执行的JAR文件。
JAR文件是一个压缩文件,它可以包含多个文件和文件夹。
JAR文件类似于ZIP文件,但是JAR文件可以具有附加的特性,这些特性对分发java应用是很有用的。
在这个练习中,您创建一个IDE项目然后把两个预先写好的java源文件放进这个项目中。
接着您将编译这些类并建立一个可执行的JAR文件。
随后您会学习如何在IDE之外运行这个JAR文件。
这些类实现了GNUgrep工具的功能,该工具能够用来在文件内部搜索文本或正则表达式模式。
这个项目包含命令行和GUI两种版本,因此您可以看到不同的运行此应用的方法。
设置项目
设置项目步骤:
1.在NetBeansIDE中选择File>NewProject(文件(F)>新建项目(W)Ctrl+Shft+N)
2.在“新建项目”页中,;类别选择java,项目选择JavaProjectWithExistingSources.(基于现有源代码的Java项目)单击Next(下一步)
3.在“新建基于现有源代码的java项目”向导中,在NameandLocation(名称和位置)页中,填入项目的名称和位置。
保持SetasMainProject(设置为主项目)单选项为选中状态。
单击Next(下一步)
例如,键入AnotherGrep作为项目名称。
对于项目文件夹,您可以就用缺省值。
项目所在文件夹完全没有必要和您引入项目的源文件在同一位置。
4.在向导的theExistingSources(现有源代码)页,您给出要引入项目的源文件。
单击"AddFolder"(添加文件夹…)按钮,该按钮是在"SourcePackageFolders"(源包文件夹)域的右侧。
然后浏览到"DeploymentTutorial"文件夹,这是您刚才已经解压到您系统的文件夹,展开这个文件夹,选择src文件夹,并且单击Open(打开)。
src文件夹就被加入到您的SourcePackage(源包文件夹)域里了。
5.点击Finish(完成)
该项目在IDE中打开并且变成在项目窗口可见。
您可以通过展开该项目的原文件包节点来展开该项目的内容。
您应该在那里看到名叫Grep和xGrep类。
Grep.java是该应用的控制台模式,而xGrep.java则是该应用的GUI模式而且它使用在Grep.java中定义的方法。
配置项目
此时,您已经有了让项目工作的所有源文件。
然而还有一些配置工作要做,您需要:
l设置项目的主类.通过这样做,您确保在创建项目时建立的JAR文件是可执行的。
l将theSwingLayoutExtensions库添加的项目中。
这一步是必须的,因为xGrep.java要使用这个新的GroupLayoutlayoutmanager类,到目前为止这些类还没有包含在JDK中。
(GroupLayout将被加入到JDK6.)
设置项目主类
为了让您的用户很容易运行您的JAR文件(通过双击JAR文件或者通过在命令行键入java-jarAnotherGrep.jar),就必须在JAR文件的清单文件中(manifestfile)指定主类。
(清单文件是JAR文件的标准组成部分,它包含关于JAR文件的有关信息,在您要运行应用时,这些信息对java执行程序会用到)
当您创建一个项目时,IDE就建立一个JAR文件并且包含一个清单文件。
当您设置项目的主类时,就会确保在您随后建立这个项目时该主类将被指定在清单文件中。
设置项目的主类:
1.右键项目节点并选择Properties(属性)
2.在类别里选择Run(运行)并在theMainClass(主类)域浏览,在浏览主类窗口选择anothergrep.xGrep,并点击“选择主类”旋钮。
选定主类。
3.点击OK(确定)关闭项目的属性对话窗口
当您随后在本教材中创建此项目时便会建立清单文件并包含下面的项:
Main-Class:
anothergrep.xGRep
添加必要的库
如果您正在开发的项目依赖于来自其它库的代码,您必须从您的项目中指明这些库。
这点对于您的项目顺利通过编译而且对于该应用容易成为可分发的都是是必须的
您可以通过项目的库节点来给项目添加库。
在本例中,xGrep.java依赖于thethenewGroupLayoutlayoutmanager类,这些类当前还没有包含在JDK中(GroupLayout将会被添加到JDK6.中)。
眼下,theGroupLayoutclasses可以在theSwingLayoutExtensionslibrary库里找到。
IDE在其库管理器中包含了theSwingLayoutExtensionslibrary,因而很容易添加到您的项目中。
添加theSwingLayoutExtensions库:
1.右键项目的库节点并选择AddLibrary(添加库)
2.在AddLibrary(添加库)对话框中,选择SwingExtensionsLayout(Swing布局扩展)并点击AddLibrary(添加库)按钮
注意:
如何您发现theSwingLayoutExtensions已经添加到您的项目中了,这可能是由于您已经在IDE打开xGrep.java文件的结果。
当您打开一个文件,该文件使用到theSwingLayoutExtensions库里的类或者当您使用theMatisseGUIBuilder创建一个应用时,IDE自动添加theSwingLayoutExtensions库到您的项目中。
但是这种自动添加库的模式对于其它库并不工作。
当您随后建立该项目时,下面的条目就被添加到该应用的JAR文件的清单文件中:
Class-Path:
lib/swing-layout-1.0.jar
注意:
您也可以添加任意的JAR文件或者文件夹(使用AddJAR/Folder命令)或者其它项目的输出(使用AddProject命令)
创建项目并建立JAR文件
现在,您准备好了您的源文件并且您的项目已配置,是时候来生成项目啦。
建立项目:
l选择Run>BuildMainProject(运行>生成主项目)
当您建立您的项目时:
l在您的项目目录中创建了build和dist两个目录(从现在起我们把项目目录称为PROJECT_HOME目录).
l所有源文件编辑为.class文件而且都放在PROJECT_HOME/build目录里
l在PROJECT_HOME/dist目录产生了一个包含您的项目的JAR文件。
l如果您为项目指定了任何的库(除了JDK),在dist目录会建立一个lib目录。
并将指定的库都拷贝到dist/lib目录中。
lJAR中的清单文件刷新包含进来一些条目,用来指定主类以及在项目的classpath的所有库。
注意:
您可以在IDE的文件窗口查看清单文件的内容。
在建立了项目之后,切换到文件窗口并导航到dist/AnotherGrep.jar。
展开JAR文件的节点,展开META-INF文件夹,并且双击MANIFEST.MF以便在文件编辑窗口显示清单文件内容
Main-Class:
anothergrep.xGRep
Class-Path:
lib/swing-layout-1.0.jar
(关于清单文件更多的知识,您可以从theJavaTutorial中阅读有关章节)
在IDE环境运行应用
当在IDE,中开发应用时,在分发之前,通常你会需要测试和完善他们。
通过从IDE中运行应用程序,您可以方便地测试您正在开发的应用程序。
要在IDE运行AnotherGrep项目,只须在项目窗口中右键项目节点(AnotherGrep)并且选择运行项目(RunProjec)。
xGrep窗口应该打开。
您可以点击Browse按钮来选择一个要在其中搜索文本表达式的文件。
在SearchPattern域里,键入要搜索匹配的文字或正则表达式,再点击Search。
匹配的所有结果就会显示在xGrep窗口的输出区域。
在这个应用中可以使用的正则表达式信息可以在这里以及万维网的其它地方找到。
在IDE之外运行该应用
一旦您完成应用的开发,在分发之前,您可能希望确保应用程序也可以在IDE外部工作。
您可以在IDE之外通过下面的步骤运行该应用:
l在您的系统文件管理器(例如,在WindowsXP系统中,我的电脑窗口),导航到PROJECT_HOME/dist并且双击AnotherGrep.jar文件。
当xGrep窗口打开时您就可以知道应用已经成功的启动了。
如果xGrep窗口没有打开,您的系统有可能不存在JAR文件和Java运行环境之间的文件关联。
参看下面的“疑难解答JAR文件关联”.
分发应用给其他用户
您已验证在IDE之外,应用可以工作,现在,就可以将其分发。
您可以通过以下步骤来分发应用程序:
1.创建一个zip文件,它包含应用程序JAR文件(AnotherGrep.j