📄 jar 文件揭密.htm
字号:
<TD width=160><!-- Start TOC-->
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=160 bgColor=#000000 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=middle background="JAR 文件揭密_files/bg-gold.gif"
height=5><B>内容:</B> </TD></TR>
<TR>
<TD width=160 bgColor=#666666 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=right>
<TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
<TBODY>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDAHCWVB">JAR
文件是什么?</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDAZHWVB">可执行的
JAR</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDAWZWVB">包密封</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDA32WVB">JAR
文件中的安全性</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDAUBXVB">JAR
索引</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#IDAFDXVB">结束语</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#resources">参考资料</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#author1">关于作者</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#rating">对本文的评价</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End TOC--><!-- Start Related Content Area-->
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=160 bgColor=#000000 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=middle background="JAR 文件揭密_files/bg-gold.gif"
height=5><B>相关内容:</B> </TD></TR>
<TR>
<TD width=160 bgColor=#666666 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=right>
<TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
<TBODY>
<TR>
<TD><A
href="http://robocode.alphaworks.ibm.com/docs/jdk1.3/tooldocs/solaris/jar.html">The
Java Archive Tool</A></TD></TR>
<TR>
<TD><A
href="http://www7b.software.ibm.com/wsdd/WASInfoCenter/infocenter/wasa_content/003401.html">IBM
WebSphere Application server and JAR file
format</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-webstart/">Java
Web Start</A></TD></TR>
<TR>
<TD><A
href="http://www-106.ibm.com/developerworks/toolbox/">developerWorks
Toolbox
subscription</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End TOC--><!-- Start Related Content Area-->
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=160 bgColor=#000000 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=middle background="JAR 文件揭密_files/bg-gold.gif"
height=5><A class=nav
href="http://www-900.ibm.com/developerWorks/cn/java/index.shtml"><B>Java
专区中还有:</B></A></TD></TR>
<TR>
<TD width=160 bgColor=#666666 height=1><IMG height=1 alt=""
src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD align=right>
<TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
<TBODY>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle?OpenView&Count=500">教学</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/cntools.nsf/dw/java-all-byname?OpenDocument&count=500">工具与产品</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/cntools.nsf/dw/java-beans-bytitle?OpenDocument&count=500">代码与组件</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/cnpapers.nsf/java-papers-bynewest?OpenView&Count=500">所有文章</A></TD></TR>
<TR>
<TD><A
href="http://www-900.ibm.com/developerWorks/cn/cntips.nsf/java-tips-bydate?OpenView&Count=500">实用技巧</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End Related dW Content Area-->
<TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
<TBODY>
<TR>
<TD width=150 bgColor=#000000 colSpan=2 height=2><IMG height=2
alt="" src="JAR 文件揭密_files/c.gif" width=160></TD></TR>
<TR>
<TD width=150 bgColor=#ffffff colSpan=2 height=2><IMG height=2
alt="" src="JAR 文件揭密_files/c.gif"
width=160></TD></TR></TBODY></TABLE><!-- END STANDARD SIDEBAR AREA--></TD></TR></TBODY></TABLE><SPAN
class=atitle2>探索 JAR 文件格式的强大功能</SPAN><BR>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR vAlign=top align=left>
<TD>
<P>级别:入门</P></TD></TR></TBODY></TABLE>
<P><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#author1">Pagadala
J. Suresh</A> (<A
href="mailto:pjsuresh@in.ibm.com">pjsuresh@in.ibm.com</A>), 软件工程师, IBM
Global Services India<BR><A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#author2">Palaniyappan
Thiagarajan</A> (<A
href="mailto:tpalaniy@in.ibm.com">tpalaniy@in.ibm.com</A>), 软件工程师,IBM
Global Services India<BR><BR>2003年 11 月</P>
<BLOCKQUOTE>大多数 Java 程序员都熟悉对 JAR 文件的基本操作。但是只有少数程序员了解 JAR
文件格式的<EM>强大功能</EM>。在本文中,作者探讨了 JAR 格式的许多功能和优势,包括打包、可执行的 JAR
文件、安全性和索引。</BLOCKQUOTE>
<P><A name=IDAHCWVB><SPAN class=atitle2>JAR 文件是什么?</SPAN></A><BR>JAR
文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR
文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如
manifests 和部署描述符,用来指示工具如何处理特定的 JAR。</P>
<P>一个 JAR 文件可以用于:</P>
<UL>
<LI>用于发布和使用类库
<LI>作为应用程序和扩展的构建单元
<LI>作为组件、applet 或者插件程序的部署单位
<LI>用于打包与组件相关联的辅助资源 </LI></UL>
<P>JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 TAR 所没有提供的。它们包括:</P>
<UL>
<LI><B>安全性。</B> 可以对 JAR
文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。<BR><BR>
<LI><B>减少下载时间。</B> 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个
applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。<BR><BR>
<LI><B>压缩。</B>JAR 格式允许您压缩文件以提高存储效率。<BR><BR>
<LI><B>传输平台扩展。</B> Java 扩展框架(Java Extensions Framework)提供了向 Java
核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun
开发的扩展例子)。<BR><BR>
<LI><B>包密封。</B> 存储在 JAR
文件中的包可以选择进行<EM>密封</EM>,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR
文件中找到。<BR><BR>
<LI><B>包版本控制。</B> 一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。<BR><BR>
<LI><B>可移植性。</B> 处理 JAR 文件的机制是 Java 平台核心 API 的标准部分。 </LI></UL>
<P><A name=IDA0DWVB><SPAN class=atitle3>压缩的和未压缩的
JAR</SPAN></A><BR><CODE>jar</CODE> 工具(有关细节参阅 <A
href="http://www-900.ibm.com/developerWorks/cn/java/j-jar/index.shtml#jartool"><CODE>jar</CODE>
工具</A>)在默认情况下压缩文件。未压缩的 JAR 文件一般可以比压缩过的 JAR
文件更快地装载,因为在装载过程中要解压缩文件,但是未压缩的文件在网络上的下载时间可能更长。</P>
<P><A name=IDAOEWVB><SPAN class=atitle3>META-INF 目录</SPAN></A><BR>大多数 JAR
文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF
目录中的下述文件和目录,以便配置应用程序、扩展和类装载器:</P>
<UL>
<LI><B>MANIFEST.MF。</B> 这个<I> manifest 文件</I>定义了与扩展和包相关的数据。<BR><BR>
<LI><B>INDEX.LIST。</B> 这个文件由 <CODE>jar</CODE> 工具的新选项<CODE> -i</CODE>
生成,它包含在应用程序或者扩展中定义的包的位置信息。它是 JarIndex 实现的一部分,并由类装载器用于加速类装载过程。<BR><BR>
<LI><B><I>xxx</I>.SF。</B> 这是 JAR 文件的签名文件。占位符 <I>xxx</I> 标识了签名者。<BR><BR>
<LI><B><I>xxx</I>.DSA。</B> 与签名文件相关联的签名程序块文件,它存储了用于签名 JAR 文件的公共签名。
</LI></UL>
<P><A name=jartool><SPAN class=atitle3>jar 工具</SPAN></A><BR>为了用 JAR
文件执行基本的任务,要使用作为Java Development Kit 的一部分提供的 Java Archive Tool
(<CODE>jar</CODE> 工具)。用 <CODE>jar</CODE> 命令调用<CODE> jar</CODE> 工具。表 1
显示了一些常见的应用:</P>
<P><B>表 1. 常见的 <CODE>jar</CODE> 工具用法</B>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -