Java归档(jar)实用程序

Zip格式亦在Java 1.1的JAR(Java ARchive)文件格式中得到了采用。这种文件格式的作用是将一系列文件合并到单个压缩文件里,就象Zip那样。然而,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题。除了可以包括声音和图像文件以外,也可以在其中包括类文件。
涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求Web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。另外,JAR文件里的每个入口(条目)都可以加上数字化签名(详情参考Java用户文档)。
一个JAR文件由一系列采用Zip压缩格式的文件构成,同时还有一张“详情单”,对所有这些文件进行了描述(可创建自己的详情单文件;否则,jar程序会为我们代劳)。在联机用户文档中,可以找到与JAR详情单更多的资料(详情单的英语是“Manifest”)。
jar实用程序已与Sun的JDK配套提供,可以按我们的选择自动压缩文件。请在命令行调用它:

jar [选项] 说明 [详情单] 输入文件

其中,“选项”用一系列字母表示(不必输入连字号或其他任何指示符)。如下所示:

c 创建新的或空的压缩档
t 列出目录表
x 解压所有文件
x file 解压指定文件
f 指出“我准备向你提供文件名”。若省略此参数,jar会假定它的输入来自标准输入;或者在它创建文件时,输出会进入标准输出内
m 指出第一个参数将是用户自建的详情表文件的名字
v 产生详细输出,对jar做的工作进行巨细无遗的描述
O 只保存文件;不压缩文件(用于创建一个JAR文件,以便我们将其置入自己的类路径中)
M 不自动生成详情表文件

在准备进入JAR文件的文件中,若包括了一个子目录,那个子目录会自动添加,其中包括它自己的所有子目录,以此类推。路径信息也会得到保留。
下面是调用jar的一些典型方法:

jar cf myJarFile.jar *.class
用于创建一个名为myJarFile.jar的JAR文件,其中包含了当前目录中的所有类文件,同时还有自动产生的详情表文件。

jar cmf myJarFile.jar myManifestFile.mf *.class
与前例类似,但添加了一个名为myManifestFile.mf的用户自建详情表文件。

jar tf myJarFile.jar
生成myJarFile.jar内所有文件的一个目录表。

jar tvf myJarFile.jar
添加“verbose”(详尽)标志,提供与myJarFile.jar中的文件有关的、更详细的资料。

jar cvf myApp.jar audio classes image
假定audio,classes和image是子目录,这样便将所有子目录合并到文件myApp.jar中。其中也包括了“verbose”标志,可在jar程序工作时反馈更详尽的信息。

如果用O选项创建了一个JAR文件,那个文件就可置入自己的类路径(CLASSPATH)中:
CLASSPATH="lib1.jar;lib2.jar;"
Java能在lib1.jar和lib2.jar中搜索目标类文件。

jar工具的功能没有zip工具那么丰富。例如,不能够添加或更新一个现成JAR文件中的文件,只能从头开始新建一个JAR文件。此外,不能将文件移入一个JAR文件,并在移动后将它们删除。然而,在一种平台上创建的JAR文件可在其他任何平台上由jar工具毫无阻碍地读出(这个问题有时会困扰zip工具)。
正如大家在第13章会看到的那样,我们也用JAR为Java Beans打包。

时间: 2024-11-01 17:44:58

Java归档(jar)实用程序的相关文章

java中jar命令如何将指定的class文件更新到_指定的目录_

问题描述 java中jar命令如何将指定的class文件更新到_指定的目录_一定是指定的目录在网上查了一下,貌似是jarufeee.jarhhh.class这个只能将hhh.class这个文件更新到eee.jar的根目录,我想要的是如何将eee.jar更新到指定的目录. 解决方案 解决方案二:C:Userszz192672>jar用法:jar{ctxui}[vfm0Me][jar-file][manifest-file][entry-point][-Cdir]files...选项包括:-c创建新

JAVA 中 jar 文件的编写和应用

JAVA中jar文件的编写和应用     我想JAVA的爱好者,尤其是初学者大都有过这样的经历,就是喜欢JAVA编程语言(这个人的情况可能不一样),但是有时候总会觉得JAVA的优点便是她的"致命"的缺点.大家的信念依旧是"一次编译,到处运行"但是就是因为至一点JAVA失去了好多,我们也失去了好多.也许大家都知道,现在业界最推崇的还是微软的技术微软的产品..net/c#/.vb/vb.net还是最流行的语言,最受欢迎的软件开发语言.因为这些语言都太好学太好用了.不像J

从Java的jar文件中读取数据的方法

  这篇文章主要介绍了从Java的jar文件中读取数据的方法,实例分析了java档案文件的相关操作技巧,需要的朋友可以参考下 本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含

浅谈java 执行jar包中的main方法_java

浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&

java生成jar后编辑框输入法问题

问题描述 java生成jar后编辑框输入法问题 我用Myeclipse运行时效果是但是我生成jar包后运行效果变成这样:我现在不想要第二种输入,想要第一种,请问是什么问题? 解决方案 http://blog.csdn.net/cping1982/article/details/4831560

关于使用exe4j将java的jar文件转化为exe文件,在运行时出现的问题

问题描述 关于使用exe4j将java的jar文件转化为exe文件,在运行时出现的问题 关于使用exe4j将java的jar文件转化为exe文件,在运行时出现的问题 附上图片 解决方案 exe4j 将java jar文件转换为exe文件出错exe4j生成Java的exe文件 解决方案二: 我以前用的时候也出现过一样的报错,这是应为你打包的时候用的是64位的jdk,装一个32位的jre,在打包此项目的时候选择32位的jre就可以了. 解决方案三: 具体问题具体解决吧,是JRE版本的问题

shell脚本运行java的jar包,并且系统是没有安装过jre的,不过有jre没安装过的压缩包

问题描述 shell脚本运行java的jar包,并且系统是没有安装过jre的,不过有jre没安装过的压缩包 图中三条线分别是 jre ,java程序的jar包,和shell脚本 当前linux系统没有安装jre和jdk,我要怎么写shell脚本,才能运行jar包啊.是不是运行jar包之前还要在shell脚本中用命令把jre安装了啊.求大神.在线等......最好把脚本写好了.....谢谢,悬赏大大滴 解决方案 **要知道,java程序是运行在句jvm中的,如果你没有jre就是说明连java的运行

eclipse导出的java程序jar包无法运行

问题描述 eclipse导出的java程序jar包无法运行 毕业设计邮件系统,用java编写的,但导出的jar包无法运行 直接双击jar包如下截图 用开始运行cmd运行截图如下 解决方案 eclipse下正常运行的话..就是导出jar包的时候出了问题. 解决方案二: 从eclipse导出java程序的jar包单独运行如何让Java程序脱离Eclipse运行(导出生成jar包)java程序在eclipse中打jar包 解决方案三: 异常显示缺少依赖的第三方jar,导出时也需要将那些依赖的jar一起

图片-java项目jar包问题跪求

问题描述 java项目jar包问题跪求 求解 解决方案 java项目ant打jar包.war包java项目打jar包 解决方案二: 你把问题说明白哦,java项目jar包添加基本的jdk 和项目下lib 解决方案三: 到底是打包遇到问题还是引入遇到问题? 解决方案四: 到底是打包遇到问题还是引入遇到问题? 解决方案五: 你要问什么问题啊,是少jar包么