jar包详解和META-INF作用

编程技术  /  houtizong 发布于 3年前   311
如果我们使用 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方法进行编码)




请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客