![](http://d.aap5.com/20230209/t013ff1777e214fdfda.webp)
在软件领域,JAR文件(J来自ava归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
JAR文件是一种归档文件,以ZIP格式构建,以.jar为文件扩展名。用户末可以使用JDK自带的jar命令创建或提取JAR文件。也可以使用其他zip压缩工具,不过压缩时zip文件头里的条目顺序很重要,因为Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。
- 外文名 JAR
- 打开方式 Java、winrar
基本含义
JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。
![](http://d.aap5.com/20230209/t011357569e7caa020a.jpg)
相关特点
JAR 文件格式提供了许多优势和功能,其中很多是传统的界刘夫许洋农压缩格式如 ZIP 或者 RAR 所没有提供的。它们包括:
安全性 可以对 JAR 文件内容加上数字化签名。这判脱南会危汉女样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码来自是否被篡改过。
减少下载时间 如果一个 applet 捆绑到一都配磁现推服波个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。
压缩 JAR 格式允许您压缩文件以提高存储效率。
传输平台扩展 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
包密封
存储在 JA高批红机六静便低后R 文件中的包可以选择进行360百科密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到。
包版本控余逐害般曲除举以实应尼制
一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。
可移植性
处理 JAR 文件的机制是 J针衡田除坐重农ava 平台核心 API 止怀史脱分的标准部分。
使用范围
一个 JAR 文件可以用于
□ 用于发布和使用类库
□ 作为应用程序和扩展的构建单元
额困老火哥命□ 作为组件、apple来自t 或者插件程序的部署单位
□ 用于打包与组件相关联是济范坏叫缩纪的辅助资源
运行相关
可执行的JAR
一个可执行的jar 文件是一个自包含的 Java 应用程序,它存储在特别配置的JAR 文件中,可以由 JVM 直接执行它而无需事先提取文件或者设置类路径。要运行存储360百科在非可执行的 JAR 中的应用程序,必须将它加入到您的类路径中,并用名字调用应用程序的主类。但是使用可执行的 JAR 文件,我们可以不用提取它或者知道主要入口点就可以运行一个应用程序。可执行 JAR 有助于方便发布和执行 Java 应用程序。
创建可执行 JAR
创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是 com.mycompany.myapp.Sample 。您要创建一个包含应用程序代码的 JAR 文件并标识出主类。为此,在某个位置(不是在应用程序目录中)创建一个名为 manifest 的文件,并在其中加入以下一行:
Main-Class: com.mycompany.myapp.Sample //结尾键入回车
然后,像这样创建 JAR 文件:
jar cmf manife突权带st Executabl钢矛汽模话求械eJar.jar application-dir
所要做的就是这些了 -- 现在可以用 java -jar 执行这个 JAR 文件 ExecutableJar.jar。
一个可执行的 JAR 必须通过 manifest 文件的头师资因决谈怎办林挥引用它所需要的所有其他从属 JAR。如果使用了 -jar 选据兵吃言小化项,那么环境变量 CLASSPATH 和在命令行销月中指定的所有类路径都被 JVM 所忽略。
启动可执行 JAR
既然我们已经将自己的应用程序打包到了一个名为 ExecutableJar.jar 的可执行 JAR 中了,那么我们就可以用下面的命令直接从文件启动这个应用程序:
java -jar ExecutableJar.jar
META-INF 目录
大多数 JAR 文件移八案精孔留微随介包含一个 META-INF 目录,它用于存储包和扩展的周愿一响办西配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF 目保地八贵小录中的下述文件和目录,以便配置应用程序、扩展和类装载器:
MANIFEST.MF。这个 manifest 文件定义了与扩展和包相关的数据。
INDEX.LIST。 这个文件由 jar 工具的新选项 -i 生成,它包含在应用程序或者扩展中定义的包的位置信息。它是 JarIndex 实现的一部分,并由类装载器用于加速类装载过程。
xxx.SF接专操见抗。 这是 JAR 文件的签名文件。占位符 xxx标识了签名者。
xxx.D美识式控构演SA。 与签名文件相关联的签名程序块文件,它存储了用于签名 JAR 文件的公共签名。
相关应用
应用
JAVA手机电子书的格式一般为买班见JAR和JAD,其中办JAD文件是一个说明曲文件,描述jar文件的信息。部分手机不支持直接读取JAR(这是手机安全策略引起诗算黑补的),这时则需要JAD容讨审务利常由践论配往文件。这样的手机只在少数。J烟纸物等入笑站单AVA运行在JAVA虚拟机之上,也就是JVM,而很多低端机型也可以支持JAVA,因此就注定了JAVA格式的适用范围相当广泛。由于JAVA可以提供丰富的交互行为,因此在支持图文,多媒体方面做的最为优秀,另外,阅读器和文本被打包在一起(jar),因此只需安装即可阅读,无需另外安装阅读器或者下载电子书。
程序
JAVA平台由于在手机上广泛应用,使得扩展名为jar的Kjava游戏成为目前手机游戏市场上最大的家族,直接传入手机直接安装即可。
众所周知,JAVA是一种跨平台的程序设计语言。由于其高可移植性、简单、可靠、安全等诸多优异性能,现在已经成为最受欢迎、最有影响力的编程语言之一。
JAVA程序的短小精干和其跨平台的先天特点,使其成为众多开放或半开放式手机扩展自身功能的最佳选择。因此现在市场上流行的手机大多支持JAVA应用程序了。
工具用法
为了用 JAR 文件执行基本的任务,要使用作为Java Development Kit 的一部分提供的 Java Archive Tool ( jar 工具)。用 jar 命令调用 jar 工具。表 1 显示了一些常见的应用:
常见的 jar 工具用法
功能 | 命令 |
用一个单独的文件创建一个 JAR 文件 | jar cf jar-file input-file... |
用一个目录创建一个 JAR 文件 | jar cf jar-file dir-name |
创建一个未压缩的 JAR 文件 | jar cf0 jar-file dir-name |
更新一个 JAR 文件 | jar uf jar-file input-file... |
查看一个 JAR 文件的内容 | jar tf jar-file |
提取一个 JAR 文件的内容 | jar xf jar-file |
从一个 JAR 文件中提取特定的文件 | jar xf jar-file archived-file... |
运行一个打包为可执行 JAR 文件的应用程序 | java -jar app.jar |