JAR 档案格式以流行的 ZIP 档案格式为基础。与 ZIP 档案不同的是,JAR 档案不仅用于压缩和发布,而且还用于部署和封装库、组件和外挂程式程式,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的档案,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。
相关特点
JAR 档案格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 RAR 所没有提供的。它们包括:
安全性 可以对 JAR 档案内容加上数位化签名。这样,能够识别签名的工具就可以有选择地为您授予软体安全特权,这是其他档案做不到的,它还可以检测代码是否被篡改过。
减少下载时间 如果一个 applet 捆绑到一个 JAR 档案中,那幺浏览器就可以在一个 HTTP 事务中下载这个 applet 的类档案和相关的资源,而不是对每一个档案打开一个新连线。
压缩 JAR 格式允许您压缩档案以提高存储效率。
传输平台扩展 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 档案打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
包密封
存储在 JAR 档案中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 档案中找到。
包版本控制
一个 JAR 档案可以包含有关它所包含的档案的数据,如厂商和版本信息。
可移植性
处理 JAR 档案的机制是 Java 平台核心 API 的标準部分。
使用範围
一个 JAR 档案可以用于
□ 用于发布和使用类库
□ 作为应用程式和扩展的构建单元
□ 作为组件、applet 或者外挂程式程式的部署单位
□ 用于打包与组件相关联的辅助资源
运行相关
可执行的JAR
一个可执行的jar 档案是一个自包含的 Java 应用程式,它存储在特别配置的JAR 档案中,可以由 JVM 直接执行它而无需事先提取档案或者设定类路径。要运行存储在非可执行的 JAR 中的应用程式,必须将它加入到您的类路径中,并用名字调用应用程式的主类。但是使用可执行的 JAR 档案,我们可以不用提取它或者知道主要入口点就可以运行一个应用程式。可执行 JAR 有助于方便发布和执行 Java 应用程式。
创建可执行 JAR
创建一个可执行 JAR 很容易。首先将所有应用程式代码放到一个目录中。假设应用程式中的主类是 com.mycompany.myapp.Sample 。您要创建一个包含应用程式代码的 JAR 档案并标识出主类。为此,在某个位置(不是在应用程式目录中)创建一个名为 manifest 的档案,并在其中加入以下一行:
Main-Class: com.mycompany.myapp.Sample //结尾键入回车
然后,像这样创建 JAR 档案:
jar cmf manifest ExecutableJar.jar application-dir
所要做的就是这些了 -- 现在可以用 java -jar 执行这个 JAR 档案 ExecutableJar.jar。