2.4.5 运行打包的jar软件

至此,读者已经学习过了如何创建jar文件,提取jar文件的内容,向jar文件中添加文件,以及查看jar文件的内容。本节将介绍如何运行打包的应用程序,以及jar文件在Applet中的应用。考虑以下两种情形:

❑jar文件包含Applet,该Applet在浏览器中运行。

❑jar文件包含应用程序,该应用程序通过命令行启动。

下面依次介绍这两种jar文件的应用方式。

1.jar文件包含Applet

为了激活Applet,使该Applet可以在浏览器中运行,使用Applet标签来表示在HTML中的Applet程序。如果该Applet与jar文件相关联,则需要使用Archive参数说明jar文件的相对路径。一个Applet的例子如下所示。


<applet code=MyJarTest.class

Width=100 height=100>

</applet>


如果需要的程序被打包成名为MyJarTest.jar的jar文件,则可以通过调用Applet标签Archive的方式说明调用了一个jar文件,并说明该jar文件的相对目录。


<applet code=MyJarTest.class

Archive="MyJarTest.jar"

Width=100 height=100>

</applet>


参数Archive表示包含类MyJarTest.class的jar文件的相对路径,本例中该jar文件和html文件在相同的目录中,如果在读者的程序中二者的路径不同,则需要修改jar文件的相对路径。如果该jar文件在html文件所在目录的下级目录myjar目录中,则该Applet应该做如下修改。


applet code=MyJarTest.class

Archive="myjar/MyJarTest.jar"

Width=100 height=100>

</applet>


2.jar文件包含应用程序

首先介绍如何打包应用程序。在前面介绍了如何将各种文件打包然后统一发布,但是对于应用程序来讲,这有些区别。在运行打包的jar应用程序前必须确保运行环境,知道该jar文件中的哪个类是程序的入口。

所以,为了说明哪个类是应用程序的入口,必须在该jar文件的manifest文件中增加一个Main-Class头信息。其格式如下所示。


Main-Class:MainClassName


其中MainClassName是作为应用程序入口的类名。下面通过一个具体的例子说明如何打包可运行的jar应用程序。

例如笔者把MyJarTest类作为应用程序的入口,首先需要创建一个名为Manifest.txt的文本文件,在文件内输入如下内容:


Main-Class:MyJarTest


注意

在Manifest.txt文本文件内的头信息必须以回车或换行结束,否则无法解析,在完成了上述文件的设置后,执行如下命令。


jar cfm MyJar.jar Manifest.txt MyJarTest.class myaudio myimages


此时完成了应用程序的打包,该应用程序打包后的jar文件名字是MyJar.jar,并且告知了运行环境应用程序执行的入口。接下来执行如下命令执行该应用程序。


Java-jar MyJar.jar