META-INF/MANIFEST.MF介绍
META-INF文件夹相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务。这个文件夹和其中的 MANIFEST.MF文件,在用jar打包时自动生成。
执行jar文件的时候,这个jar里是需要具备 META-INF/MANIFEST.MF的,否则java -jar就找不到main class。
初始结构:
Manifest-Version: 1.0
假设文件目录为folder/file.class,
压缩成 ZIP 文件 folder.zip,则这个 ZIP 文件的内部目录结构为:
folder.zip
`-- folder
`-- file.class
如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 folder.jar,则这个 JAR 文件的内部目录结构为:
folder.jar
`-- META-INF
`-- MANIFEST.MF
`-- folder
`-- file.class
如果需要打包可直接运行的jar包,需要在MANIFEST.MF添加内容
Manifest-Version: 1.0 Main-Class: addJarPkg #Main-Class为主类名称Class-Path: lib/java-mysql-connecter.jar #如果需要用到第三方jar包,需要在此注明,多个jar包之间用空格分隔,最后一个jar包后面加两个空格
一般手动打包时可以自己先写好一个类似文件,在使用jar命令打包时使用 -m 选项覆盖掉自动生成的MANIFEST.MF文件。
使用工具打包时可以直接选择。
附件:来自https://www.cnblogs.com/Gandy/p/7290069.html
MANIFEST.MF文件可能的内容整理:
Manifest-Version: 1.0
Created-By: Apache Ant 1.5.1
Extension-Name: Struts Framework
Specification-Title: Struts Framework
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.1
Implementation-Title: Struts Framework
Implementation-Vendor: Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.1
Class-Path: commons-beanutils.jar commons-collections.jar commons-dig
ester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar s
truts-legacy.jar
如果我们把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==
这段内容定义类签名的类名、计算摘要的算法名以及对应的摘要内容(使用BASE方法进行编码)
七.自定义属性
除了前面提到的一些属性外,你也可以在MANIFEST.MF中增加自己的属性以及响应的值,例如J2ME程序jar包中就可能包含着如下信息
MicroEdition-Configuration: CLDC-1.0
MIDlet-Name: J2ME_MOBBER Midlet Suite
MIDlet-Info-URL: http://www.javayou.com
MIDlet-Icon: /icon.png
MIDlet-Vendor: Midlet Suite Vendor
MIDlet-1: mobber,/icon.png,mobber
MIDlet-Version: 1.0.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Description: Communicator
转载于:https://www.cnblogs.com/jayworld/p/9767228.html
META-INF/MANIFEST.MF介绍相关推荐
- META-INF/MANIFEST.MF介绍 _
原文地址:https://www.cnblogs.com/jayworld/p/9767228.html META-INF文件夹相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用 ...
- IDEA打jar包时出现manifest.mf already exists in vfs解决办法
1.什么是MANIFEST.MF 下面MANIFEST.MF的介绍来自百度百科http://baike.baidu.com/link?url=QQ97CnYdkb0RqF33qFh9XiRfF_2NG ...
- MANIFEST.MF的用途(转载)
可以用的上的有: 1. Main-Class 指定程序的入口,这样可以直接用java -jar xxx.jar来运行程序. 2. Class-Path 指定jar包的依赖关系,class loader ...
- 【Java】MANIFEST.MF是什么
1.概述 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JE ...
- jav中jar包的MANIFEST.MF
打开Java的JAR文件我们经常可以看到文件中包含着一个METAR-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANI ...
- MANIFEST.MF的用途
可以用的上的有: 1. Main-Class 指定程序的入口,这样可以直接用java -jar xxx.jar来运行程序. 2. Class-Path 指定jar包的依赖关系,class loader ...
- JAR包中的MANIFEST.MF文件详解以及编写规范
JAR包中的MANIFEST.MF文件详解以及编写规范 参考百度百科的解释如下: http://baike.baidu.com/item/MANIFEST.MF MANIFEST.MF:这个 mani ...
- MANIFEST.MF文件详解
文章目录 一. 一般属性 二. 应用程序相关属性 三. 小程序(Applet)相关属性 四. 扩展标识属性 五. 包扩展属性 六. 签名相关属性 七.自定义属性 JAR 文件是什么? META-INF ...
- manifest java_JAR包中的MANIFEST.MF文件详解以及编写规范
参考百度百科的解释如下: MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据.单词"manifest"的意思是"显示" 打开Java ...
最新文章
- python画层次结构图_Maptree-层级结构数据展示的绝佳尝试
- (深度卷积生成对抗神经网络)DCGANs论文阅读与实现pytorch
- 4.6 大数据集-机器学习笔记-斯坦福吴恩达教授
- 北京市将持续扩大5G网络建设规模 超前布局6G
- 情怀无价!诺基亚225 4G正式开售:320元
- 好文!2020届最新互联网校招薪资大全!
- 现在,AI 已经能预测病人什么时候死亡了,准确率达 90%
- 系统设计---分层,分级,分块
- android 手机关机代码非root,Android手机获取root权限并实现关机重启功能的方法
- 移动通信原理B-------课后作业1
- ADRC自抗扰控制算法(含梯形图完整源代码和算法公式)
- 大学计算机应用基础教学设计,大学计算机应用基础电子教案设计.doc
- dede后台登陆提示 验证码不正确 解决办法(新版)
- webgame《天龙诀》完整网页游戏源码
- 利用FME创建CAD标准图层模板
- [RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题
- POSCMS 域名绑定
- 配置ssh使用socks代理
- 程序员面试金典-刷题笔记
- 关于html5外文翻译三千字,推荐5个功能强大的外文文献学术论文翻译工具