9.5.2 JAR文件

9.5.2 JAR文件

img424

前面讲过,Applet程序是嵌入在HTML文件中,通过浏览器下载到本地机上运行的。

本地机上下载的内容包括Applet字节码、运行它的HTML文件及Applet要用到的图像文件、声音文件等。有些情况下,在用浏览器浏览网页时,需要建立多次连接才能完成下载(下载完当前需要的文件后,连接会自动关闭,以后再需要某个文件时再重新建立连接),效率很低。另外,有时需要下载的文件很大,花费的时间将会很长。

文件打包技术是解决上述两类问题的一种方法。文件打包就是把若干个文件压缩、打包在一个文件中。Java中打包后的文件名后缀为.jar,所以打包文件也称为JAR文件。

JAR(Java Archive)是一种与平台无关的文档格式,一般叫Java存档,它相当于一种压缩格式,可以把众多的文档合成一个文件。

大多数的Applet都由多个类组成,使用浏览器来浏览这样的Applet时,由于一个文件需要一个连接,所以浏览器需要使用多个连接,这样在一个低速的网络上加载一个Applet需要好几分钟。这里值得注意的是,加载Apple需要较长的时间的原因并不是因为类文件太大,关键的原因是建立到服务器的连接需要的时间长。

对于Applet来说,JAR文件可以将多个需要的类文件合并为一个单一的文件。这是很有意义的,这样这些类文件可以作为一个整体使用一个HTTP事务下载到浏览器中,从而大大提高浏览速度。

用JDK制作JAR文件的方法是,在DOS提示符下键入如下命令:

jar cf <存档文件名> <文件1> <文件2>… <文件n>

其中,选项c表示创建一个新的文件,选项f表示指定文件的名字;(存档文件名)是用户打包的JAR文件的文件名;<文件1>,<文件2>,…,<文件n>是要打包的n个文件的文件名,文件名之间用空格分隔。

例如,对于例9-6的例子,就可以把Applet字节码文件(ImageApplet.class)和图像文件(yyy3.gif)打包成一个JAR文件(AppletDemo.jar)。采用如下方法:

jar cf AppletDemo.jar ImageApplet.class yyy3.gif

创建了JAR文件后,如何把它嵌入在HTML文件中呢?方法是在HTML文件中用archive属性指定要下载的JAR文件名。例如,对于对于例9-6的例子,HTML文件应修改为:jar命令的选项很多,cf是最常用的。若想得到该命令的详细帮助信息,只需要在控制台键入JAR后回车,系统将列出JAR命令的所有选项和含义。

示例1:将两个class文件归档到一个名为 'classes.jar' 的归档文件中:

img425

示例2:用一个存在的清单(manifest〕文件 'mymanifest' 将 foo/ 目录下的所有文件归档到一个名为 'classes.jar' 的归档文件中:

img426