首页 / 软件开发 / JAVA / JAR文件揭密:探索JAR文件格式的强大功能
JAR文件揭密:探索JAR文件格式的强大功能2011-04-16 IBM Pagadala J. SureshJAR 文件是什么?JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件 程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。一个 JAR 文件可以用于:用于发布和使用类库作为应用程序和扩展的构建单元作为组件、applet 或者插件程序的部署单位用于打包与组件相关联的辅助资源JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 TAR 所没 有提供的。它们包括:安全性。可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选 择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。减少下载时间。 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接 。压缩。JAR 格式允许您压缩文件以提高存储效率。传输平台扩展。 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台 添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的 扩展例子)。包密封。存储在 JAR 文件中的包可以选择进行 密封,以增强版本一致性和安全性。密封 一个包意味着包中的所有类都必须在同一 JAR 文件中找到。包版本控制。一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。可移植性。处理 JAR 文件的机制是 Java 平台核心 API 的标准部分。压缩的和未压缩的 JARjar 工具(有关细节参阅 jar 工具 )在默认情况下压缩文件。未压缩的 JAR 文件一般可 以比压缩过的 JAR 文件更快地装载,因为在装载过程中要解压缩文件,但是未压缩的文件在 网络上的下载时间可能更长。META-INF 目录大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性 和版本信息。Java 2 平台识别并解释 META-INF 目录中的下述文件和目录,以便配置应用程 序、扩展和类装载器:MANIFEST.MF。这个 manifest 文件定义了与扩展和包相关的数据。INDEX.LIST。 这个文件由 jar 工具的新选项 -i 生成,它包含在应用程序或者扩展中定 义的包的位置信息。它是 JarIndex 实现的一部分,并由类装载器用于加速类装载过程。xxx.SF。 这是 JAR 文件的签名文件。占位符 xxx标识了签名者。xxx.DSA。 与签名文件相关联的签名程序块文件,它存储了用于签名 JAR 文件的公共签 名。