⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jar 文件揭密.htm

📁 详细介绍了jar 文件如何打包
💻 HTM
📖 第 1 页 / 共 4 页
字号:
          -keypass jamespass -signedjar SSample.jar Sample.jar james
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P>这个命令用密码“jamesKeyStorePass”从名为“jamesKeyStore”的 keystore 
      中提出别名为“james”、密码为“jamespass”的密钥,并对 Sample.jar 文件签名、创建一个签名的 JAR -- 
      SSample.jar。</P>
      <P><CODE>jarsigner</CODE> 工具还可以验证一个签名的 JAR 文件,这种操作比签名 JAR 
      文件要简单得多,只需执行以下命令:</P>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>
jarsigner -verify SSample.jar
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P>如果签名的 JAR 文件没有被篡改过,那么 <CODE>jarsigner</CODE> 工具就会告诉您 JAR 
      通过验证了。否则,它会抛出一个 <CODE>SecurityException</CODE>, 表明哪些文件没有通过验证。</P>
      <P>还可以用 <CODE>java.util.jar</CODE> 和<CODE> java.security</CODE> API 
      以编程方式签名 JAR(有关细节参阅<A 
      href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#resources">参考资料</A>)。也可以使用像 
      Netscape Object Signing Tool 这样的工具。</P>
      <P><A name=IDAUBXVB><SPAN class=atitle2>JAR 索引</SPAN></A><BR>如果一个应用程序或者 
      applet 捆绑到多个 JAR 文件中,那么类装载器就使用一个简单的线性搜索算法搜索类路径中的每一个元素,这使类装载器可能要下载并打开许多个 
      JAR 文件,直到找到所要的类或者资源。如果类装载器试图寻找一个不存在的资源,那么在应用程序或者 applet 中的所有 JAR 
      文件都会下载。对于大型的网络应用程序和 applet,这会导致启动缓慢、响应迟缓并浪费带宽。</P>
      <P>从 JDK 1.3 以后,JAR 文件格式开始支持索引以优化网络应用程序中类的搜索过程,特别是 applet。JarIndex 机制收集在 
      applet 或者应用程序中定义的所有 JAR 文件的内容,并将这些信息存储到第一个 JAR 文件中的索引文件中。下载了第一个 JAR 
      文件后,applet 类装载器将使用收集的内容信息高效地装载 JAR 文件。这个目录信息存储在根 JAR 文件的 META-INF 目录中的一个名为 
      INDEX.LIST 的简单文本文件中。</P>
      <P><A name=IDA3BXVB></A>创建一个 JarIndex<BR>可以通过在 <CODE>jar</CODE> 命令中指定 
      <CODE>-i</CODE> 选项创建一个 JarIndex。假设我们的目录结构如下图所示:</P>
      <P><A name=IDAOCXVB><B>图 2. JarIndex</B></A><BR><IMG height=163 
      alt="JarIndex Demo" src="JAR 文件揭密_files/jarindex.gif" width=329></P>
      <P>您将使用下述命令为 JarIndex_Main.jar、JarIndex_test.jar 和 JarIndex_test1.jar 
      创建一个索引文件:</P>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>
jar -i JarIndex_Main.jar JarIndex_test.jar SampleDir/JarIndex_test1.jar 
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P>INDEX.LIST 文件的格式很简单,包含每个已索引的 JAR 文件中包含的包或者类的名字,如清单 2 所示:</P><A 
      name=IDA3CXVB><B>清单 2. JarIndex INDEX.LIST 文件示例</B></A><BR>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>
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
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P><A name=IDAFDXVB><SPAN class=atitle2>结束语</SPAN></A> <BR>JAR 
      格式远远超出了一种压缩格式,它有许多可以改进效率、安全性和组织 Java 应用程序的功能。因为这些功能已经建立在核心平台 -- 包括编译器和类装载器 
      -- 中了,所以开发人员可以利用 JAR 文件格式的能力简化和改进开发和部署过程。.</P>
      <P><A name=resources><SPAN class=atitle2>参考资料</SPAN></A> 
      <UL>
        <LI>参阅 <A 
        href="http://java.sun.com/docs/books/tutorial/jar/basics/index.html">jar</A> 
        实用程序的命令行选项的文档。<BR><BR>
        <LI>Raffi Krikorian 在 ONJava 上发表的文章提供了有关 <A 
        href="http://www.onjava.com/pub/a/onjava/2001/04/12/signing_jar.html?page=1">programmatically 
        signing a JAR file</A> 的帮助。<BR><BR>
        <LI>这篇关于<A 
        href="http://robocode.alphaworks.ibm.com/docs/jdk1.3/tooldocs/solaris/jar.html">Java 
        Archive Tool</A> 的文档解释了创建和操作 JAR 文件可以使用的选项。<BR><BR>
        <LI>文章“<A 
        href="http://www-900.ibm.com/developerWorks/cn/java/j-webstart/">Java 
        Web Start</A>”(<I>developerWorks</I>,2001 年 9 
        月)描述了如何使用这种技术,以便允许应用程序可以指定所需的 JAR 文件并动态下载它们。<BR><BR>
        <LI>有关 J2EE 服务器(比如 IBM WebSphere Application Server)使用 JAR 
        文件格式的不同方式,请参阅“<A 
        href="http://www7b.software.ibm.com/wsdd/WASInfoCenter/infocenter/wasa_content/003401.html">What 
        are Java Archive (JAR) files?</A>”<BR><BR>
        <LI>JAR 格式是 WAR (Web Archive) 格式的基础,WAR用于在 J2EE 容器中部署 Servlet 和 JSP 
        应用程序。更多内容请参阅“<A 
        href="http://www-1.ibm.com/servers/eserver/iseries/software/websphere/wsappserver/docs/as400v35/help/000801.html">What 
        are WAR files?</A>”。<BR><BR>
        <LI>JAR 格式也是 EAR (Enterprise Archive) 格式的基础,EAR 用于在 J2EE 容器中部署 
        EJB。更多内容请参阅“<A 
        href="http://www7b.software.ibm.com/wsdd/WASInfoCenter/infocenter/wasa_content/000101.html">What 
        are Enterprise Archive (EAR) files?</A>”。<BR><BR>
        <LI>在 <A 
        href="http://www-900.ibm.com/developerWorks/cn/java/"><I>developerWorks</I> 
        Java 技术专区</A>上可以找到数百篇关于 Java 编程的各个方面的文章。<BR><BR></LI></UL>
      <P></P><!-- AUTHOR BIOS--><!-- Make author heading singular or plural as needed-->
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD><A name=author1></A><SPAN class=atitle2>关于作者</SPAN><BR><IMG 
            height=80 alt="Photo of Pagadala Suresh" 
            src="JAR 文件揭密_files/p-suresh.jpg" width=64 align=left 
            border=0>Pagadala J. Suresh 是 IBM Global Services India 
            的软件工程师。他擅长的领域包括 Java 技术、WebSphere Application Server 和 WebSphere 
            Studio Application Developer (WSAD)、Ariba Buyer。他参与了 WebSphere 的 IBM 
            Redbook 项目。可以通过 <A 
            href="mailto:pjsuresh@in.ibm.com">pjsuresh@in.ibm.com</A> 与 Pagadala 
            联系。</TD></TR>
        <TR>
          <TD>
            <P><A name=author2><BR></A><IMG height=80 
            alt="Photo of Palaniyappan Thiagarajan" 
            src="JAR 文件揭密_files/p-thiagarajan.jpg" width=64 align=left 
            border=0>Palaniyappan Thiagarajan 是位于印度班加罗尔的 IBM Global Services 
            India 的软件工程师。他是IBM 认证的 IBM WebSphere Application Server V3.5 和 IBM 
            DB2 UDB V7.1 Family Fundamentals 专家。可以通过 <A 
            href="mailto:tpalaniy@in.ibm.com">tpalaniy@in.ibm.com</A> 与 
            Palaniyappan 联系。</P></TD></TR></TBODY></TABLE></TD>
    <TD width=10><IMG height=1 alt="" src="JAR 文件揭密_files/c.gif" width=10 
      border=0></TD></TR></TBODY></TABLE><!-- END PAPER BODY--><BR clear=all><IMG 
height=10 alt="" src="JAR 文件揭密_files/c.gif" width=100 border=0><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=right width="100%"><A 
      href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#top">到页首</A></TD>
    <TD width=5><IMG height=1 alt="" src="JAR 文件揭密_files/c.gif" width=5 
      border=0></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#000000 colSpan=2><IMG height=1 alt="" 
      src="JAR 文件揭密_files/c.gif" width=100 border=0></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff colSpan=2><IMG height=8 alt="" 
      src="JAR 文件揭密_files/c.gif" width=100 border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=10 width="100%" border=0>
  <TBODY>
  <TR vAlign=top>
    <TD>
      <FORM name=getURL 
      action=/developerWorks/cn/cnratings.nsf/RateArticle?CreateDocument 
      method=post><INPUT type=hidden value="JAR 文件揭密" name=ArticleTitle> <INPUT 
      type=hidden name=url>
      <SCRIPT language=javascript>getURL();</SCRIPT>
       <INPUT type=hidden value=Java name=Zone> <INPUT type=hidden 
      value=/developerWorks/cn/thankyou/feedback-java.html name=RedirectURL> <A 
      name=rating><B>您对这篇文章的看法如何?</B></A> 
      <TABLE cellSpacing=0 cellPadding=0 width=600 border=0>
        <TBODY>
        <TR>
          <TD colSpan=5><IMG height=8 alt="" src="JAR 文件揭密_files/c.gif" 
            width=100 border=0></TD></TR>
        <TR vAlign=top>
          <TD width="16%"><INPUT type=radio value=5 name=Rating>真棒!(5)</TD>
          <TD width="20%"><INPUT type=radio value=4 name=Rating>好材料 (4)</TD>
          <TD width="24%"><INPUT type=radio value=3 name=Rating>一般;尚可 (3)</TD>
          <TD width="22%"><INPUT type=radio value=2 name=Rating>需提高 (2)</TD>
          <TD width="18%"><INPUT type=radio value=1 name=Rating>太差! 
        (1)</TD></TR></TBODY></TABLE><BR><B>建议?</B><BR><TEXTAREA name=Comments rows=5 wrap=virtual cols=60></TEXTAREA><BR><BR><INPUT type=submit value=提交反馈意见></FORM></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff><IMG height=8 alt="" src="JAR 文件揭密_files/c.gif" 
      width=100 border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=right>(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 
      2001, All Right Reserved</TD></TR>
  <TR vAlign=top>
    <TD class=bbg height=21>&nbsp;&nbsp;<A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/index.shtml&amp;origin=dwhead">关于 
      IBM</A><SPAN class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A 
      class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/privacy/index.shtml&amp;origin=dwhead">隐私条约</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/legal/index.shtml&amp;origin=dwhead">使用条款</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/contact/index.shtml&amp;origin=dwhead">联系 
      IBM</A></TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript1.2 src="JAR 文件揭密_files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt="" 
src="F:\ziliao\java\java资料\JAR 文件揭密_files\c(1).gif" width=1 border=0></NOSCRIPT> 
</A></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -