首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

jar包详解跟META-INF作用(转)

2012-12-22 
jar包详解和META-INF作用(转)如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件

jar包详解和META-INF作用(转)
如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:

不要删掉,是证书,和校验数据,是部署信息。很多信息是存放类信息的文件夹,信息包,

用来描述该jar文件的信息的,程序的入口
test.jar

|-- META-INF

| `-- MANIFEST.MF

`-- test

`--Test.class
我们把MANIFEST中的配置信息进行分类,可以归纳出下面几个大类:
  一. 一般属性
  1. Manifest-Version
  用来定义manifest文件的版本,例如:Manifest-Version: 1.0
  2. Created-By
  声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
  3. Signature-Version
  定义jar文件的签名版本
  4. Class-Path
  应用程序或者类装载器使用该值来构建内部的类搜索路径
  二. 应用程序相关属性
  1. Main-Class
  定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
  三. 小程序(Applet)相关属性
  1. Extendsion-List
  该属性指定了小程序需要的扩展信息列表,列表中的每个名字对应以下的属性
  2. <extension>-Extension-Name
  3. <extension>-Specification-Version
  4. <extension>-Implementation-Version
  5. <extension>-Implementation-Vendor-Id
  5. <extension>-Implementation-URL
  四. 扩展标识属性
  1. Extension-Name
  该属性定义了jar文件的标识,例如Extension-Name: Struts Framework
  五. 包扩展属性
  1. Implementation-Title 定义了扩展实现的标题
  2. Implementation-Version 定义扩展实现的版本
  3. Implementation-Vendor 定义扩展实现的组织 
  4. Implementation-Vendor-Id 定义扩展实现的组织的标识
  5. Implementation-URL : 定义该扩展包的下载地址(URL)
  6. Specification-Title 定义扩展规范的标题
  7. Specification-Version 定义扩展规范的版本
  8. Specification-Vendor 声明了维护该规范的组织
  9. Sealed 定义jar文件是否封存,值可以是true或者false (这点我还不是很理解)
  六. 签名相关属性
  签名方面的属性我们可以来参照JavaMail所提供的mail.jar中的一段
  Name: javax/mail/Address.class
  Digest-Algorithms: SHA MD5 
  SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=
  MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==
  这段内容定义类签名的类名、计算摘要的算法名以及对应的摘要内容(使用BASE64方法进行编码)




热点排行