作者:郭嘉
邮箱:[email protected]
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
一 JAR包结构分析
JAR(Java Archive FIle)Java归档文件,是Java标准的文档格式,是一个或多个Java字节码文件的打包压缩文件,采用常见的ZIP压缩算法,和ZIP文件十分类似,可以直接解压。
JAR文件主要用来压缩和发布字节码文件,而且还用于部署和封装库、组件和插件程序,并且可以被像编辑器和JVM这样的工具直接使用。
1.1 JAR包结构
JAR包的结构如下图所示:
1.2 MANIFEST.MF属性
从上图可以看出,JAR包比普通zip文件多了一个META-INF文件夹,该文件夹下包含了一个MANFEST.MF文件。
1.2.1 一般属性
- Manifest-Version
用来定义manifest文件的版本,例如:Manifest-Version: 1.0 - Created-By
声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1 - Signature-Version
定义jar文件的签名版本 - Class-Path
应用程序或者类装载器使用该值来构建内部的类搜索路径
1.2.2 应用程序相关属性
- Main-Class
定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
1.2.3 小程序(Applet)相关属性
- Extendsion-List
该属性指定了小程序需要的扩展信息列表,列表中的每个名字对应以下的属性 - -Extension-Name
- -Specification-Version