在Java 1.2中使用Java Archives 同网络上的大部分新技术一样, Java的发展速度很快。当你觉得已经掌握了某个领域的知识时,该领域内有出来了新东西。当然,所有的改进都使得网络世界变得更快速且更有趣,但是这些改进需要我们花费时间和精力来掌握。让我们来看看Java的1.2版本以及HTML 4.0,你将会学会如何创建archive文件,并且使用它们来简化Java 程序的发布。我们也将学习一个新的同archives有关的HTML标识。即使你不是程序员,你也可以利用这些知识来提高你的网站的Java应用层次。使用Java Archive文件一个applet是在浏览器中运行的Java程序。如果你使用过applets,你就会知道一个简单的Java程序可以带有很多相关的源文件,诸如存储实际代码的Java类文件,applet中要用到的图形文件,以及其他类型的媒体文件。为了使得程序员和非程序员们更容易地使用Java applets, Java 1.1引进了一个archive(档案文件)系统,可以让你把所有相关的源文件打包成一个称为Java archive (JAR)的单一文件。这里,我们使用了archive这个术语,用来表明一个文件,其中包含了很多其他文件。如果你使用过ZIP软件压缩工具,把你的硬盘资料备份到磁带上,你实际上已经使用过archives文件了。大多数ZIP压缩工具在把文件存储在archive中之前,已经将相关文件进行了压缩,以节省空间。同样,Java archives中的文件也经过了压缩,以节省空间。事实上, Java在其archives中使用的也是ZIP压缩格式。另外一个使用压缩过的archive文件的好处是:它们可以大大改进applets的性能,客户和服务器两端的性能都可以因此而得到改善。压缩过的archives占用的存储空间更少,你的浏览器在下载这些archives时将比下载未经压缩的文件节省了很多时间。在网络服务器中,所节省下来的时间也是很可观的。服务器为每个文件生成一个单独的HTTP事务,而每个事务就得占用服务器的资源,而且每生成一个事务也要花费处理器几秒的时间。这样,通过把许多文件打包压缩成为一个文件,你就可以提高服务器的响应时间,减少用户的等待时间。我们大家都讨厌漫长的等待。直到最近, Java archives才可以同applets配合使用,因为这个原因,大多数人往往认为Java archive仅仅只能用在applets中。实际上, Java 1.2的所作的改进,使得你可以很容易地在应用程序中也可以使用archives文件。如果Java Development Kit安装在你的计算机上,你可以使用Java archive工具软件 JAR来创建archive。一般情况下,可以在DOS或者Unix环境下运行JAR。图一总结了JAR的常用语法。 用于Java Archive文件的一般命令,包括创建,展开,察看和运行Java Archive。操作 命令 
创建 JAR 文件 jar cf jar-file input-file(s) 
察看JAR文件的内容 jar tf jar-file 
从JAR文件中展开内容 jar xf jar-file 
运行JAR文件包应用( 1.1版本适用) jar xf jar-file archived-file(s) 
运行JAR文件包应用(版本1.2适用; 需要 Main-Class 头) jre -cp app.jar MainClass 
引用JAR的Applets <applet code=AppletClassName.class archive="JarFileName.jar" width=width height=height></applet> 同大多数其他的命令行工具不一样的是,JAR不需要你使用连字号或者斜线指明选项。当你创建一个archive文件的时候,你通常传递给JAR 两个参数选项:c 用于创建archive,f 用于指明archive文件名。这些选项之后就跟着archive文件名,(archive文件的扩展名为.jar ),之后,再跟着包含在archive中的文件列表清单。下面的例子中,JAR创建了一个称为myarchive.jar的archive,它包含了如下三个文件:ccMain.class, vid.class和banner.gif。jar cf myarchive.jar ccMain.classvid.class banner.gif
如果你得到了别人创建的archive ,你想知道里面包含了哪些文件。要做到这一点,你可以使用t 选项,以显示出archive中的内容列表。下面的例子列出了名为myarchive.jar的archive文件中的内容清单:jar tf myarchive.jar
通常,当你正在把文件进行归档操作(archive)时,你想知道究竟发生了什么事情,或者打算列出文档中的内容清单,于是你就可以使用v (用于详细显示) 选项。你可以把该选项同其他以前讨论过的选项结合使用。当你使用c,v和f 选项来创建archives 时, JAR将给出大量关于archive在处理过程中的详细信息:你可以看到文件被加入到archive中,源文件的大小,被压缩后的文件大小,以及从这些文件中节省了多少空间。例如,如果你创建了下列archive: jar cvf keyarchive.jar keys.class
comp.class talk.class
Java archive工具软件将详细显示出如下的过程处理信息: adding: keys.class in=19612
out=4810 deflated 75%
adding: comp.class in=9554 
out=4105 deflated 57%
adding: talk.class in=42453 
out=9021 deflated 78%
这里,Java archive工具把三个文件加入到archive中。你可以在in参数中看到源文件的大小,也可以在out参数中看到压缩后的文件大小,每个文件被压缩后所节省的空间的百分比也在最后显示出来。你可以看到,三个源文件的大小大约共为70K,JAR成功地把它们压缩到一个大约为18K的archive文件中,当你使用标准调制解调器传输这些文件时,效率大不一样。

解决方案 »

  1.   

    可是这个Manifest是干吗用的?怎么用?
      

  2.   

    jar helloworld.jar helloworld\*.class
      

  3.   

    这个manifest.mf文件是用来指定一些信息的。
    其中的内容大致如下:Manifest-Version: 1.0
    Main-Class: test.FrmMain
    Created-By: 1.3.1 (Sun Microsystems Inc.)其中Main-Class后的部分就指定了打开的路径!所以当你双击这个jar文件时就相当于你执行了 java test.FrmMain
      

  4.   

    Manifest主要是配置你运行JAR的主类