快速业务通道

JAR文件揭密:探索JAR文件格式的强大功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
成或者验证 JAR 文件的数字签名。

假设像上述例子那样创建了 keystore “jamesKeyStore”,并且它包含一个别名为 “james”的密钥,可以用下面的命令签名一个 JAR 文件:

jarsigner -keystore jamesKeyStore -storepass jamesKeyStorePass       -keypass jamespass -signedjar SSample.jar Sample.jar  james

这个命令用密码“jamesKeyStorePass”从名为“jamesKeyStore”的 keystore 中提出别 名为“james”、密码为“jamespass”的密钥,并对 Sample.jar 文件签名、创建一个签名 的 JAR -- SSample.jar。

jarsigner 工具还可以验证一个签名的 JAR 文件,这种操作比签名 JAR 文件要简单得多 ,只需执行以下命令:

jarsigner -verify SSample.jar

如果签名的 JAR 文件没有被篡改过,那么 jarsigner 工具就会告诉您 JAR 通过验证了 。否则,它会抛出一个 SecurityException , 表明哪些文件没有通过验证。

还可以用 java.util.jar 和 java.security API 以编程方式签名 JAR。也可以使用像 Netscape Object Signing Tool 这样的工具。

JAR 索引

如果一个应用程序或者 applet 捆绑到多个 JAR 文件中,那么类装载器就使用一个简单 的线性搜索算法搜索类路径中的每一个元素,这使类装载器可能要下载并打开许多个 JAR 文 件,直到找到所要的类或者资源。如果类装载器试图寻找一个不存在的资源,那么在应用程 序或者 applet 中的所有 JAR 文件都会下载。对于大型的网络应用程序和 applet,这会导 致启动缓慢、响应迟缓并浪费带宽

从 JDK 1.3 以后,JAR 文件格式开始支持索引以优化网络应用程序中类的搜索过程,特 别是 applet。JarIndex 机制收集在 applet 或者应用程序中定义的所有 JAR 文件的内容, 并将这些信息存储到第一个 JAR 文件中的索引文件中。下载了第一个 JAR 文件后,applet 类装载器将使用收集的内容信息高效地装载 JAR 文件。这个目录信息存储在根 JAR 文件的 META-INF 目录中的一个名为 INDEX.LIST 的简单文本文件中。

创建一个 JarIndex 可以通过在 jar 命令中指定 -i 选项创建一个 JarIndex。假设我们的目录结构如下图所 示:

图 2. JarIndex

JAR文件揭密:探索JAR文件格式的强大功能 - 编程入门网

JAR文件揭密:探索JAR文件格式的强大功能(6)

时间:2011-04-16 IBM Pagadala J. Suresh

您将使用下述命令为 JarIndex_Main.jar、JarIndex_test.jar 和 JarIndex_test1.jar 创建一个索引文件:

jar -i JarIndex_Main.jar JarIndex_test.jar  SampleDir/JarIndex_test1.jar

INDEX.LIST 文件的格式很简单,包含每个已索引的 JAR 文件中包含的包或者类的名字, 如清单 2 所示:

清单 2. JarIndex INDEX.LIST 文件示例

JarIndex-Version: 1.0 JarIndex_Main.jar sp JarIndex_test.jar Sample SampleDir/JarIndex_test1.jar org org/apache org/apache/xerces org/apache/xerces/framework org/apache/xerces/framework/xml4j

结束语

JAR 格式远远超出了一种压缩格式,它有许多可以改进效率、安全性和组织 Java 应用程 序的功能。因为这些功能已经建立在核心平台 -- 包括编译器和类装载器 -- 中了,所以开 发人员可以利用 JAR 文件格式的能力简化和改进开发和部署过程。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号