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