manifest文件是用来描述jar包的,它描述了该jar包的代码是谁的,什么版本,使用什么版本的类库等等。。。。具体如下:

1、基础格式

  manifest 文件的格式是很简单的,每一行都是 名-值 对应的:属性名开头,接着是 ":" ,然后是属性值,每行最多72个字符,如果需要增加,你可以在下一行续行,续行以空格开头,以空格开头的行都会被视为前一行的续行。

2、属性

Manifest-Version

  用来定义manifest文件的版本,例如:Manifest-Version: 1.0

   Created-By

  声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1

   Signature-Version

  定义jar文件的签名版本

  Class-Path

  应用程序或者类装载器使用该值来构建内部的类搜索路径

Main-Class

  定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。

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

  签名相关属性:

  Name: javax/mail/Address.class

  Digest-Algorithms: SHA MD5

  SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=

  MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==

当要提供一个类库或编程接口时,描述信息显得是很重要,见以下范例:

Manifest-Version: 1.0 
Created-By: JDJ example 
Class-Path: mail.jar activation.jar

Name: com/example/myapp/ 
Specification-Title: MyApp 
Specification-Version: 2.4 
Specification-Vendor: example.com 
Implementation-Title: com.example.myapp 
Implementation-Version: 2002-03-05-A 
Implementation-Vendor: example.com

3、Package Version 查询

在manifest文件中加入package描述后,就可以使用Java提供的java.lang.Package class进行Package 的信息查询,这里列举3个最基本的获取package object的方法 :
1.Package.getPackages():返回系统中所有定义的package列表 
2.Package.getPackage(String packagename):按名返回package 
3.Class.getPackage():返回给定class所在的package

META-INF文件夹中的MANIFEST.MF 的作用的更多相关文章

  1. 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv

    152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...

  2. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  3. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  4. PHP遍历、删除文件夹中的所有文件

    <?php header("Content-type:text/html;charset=utf-8"); /** * getDirFile 遍历文件夹中的所有文件 * @p ...

  5. C#遍历指定文件夹中的所有文件和子文件夹

    参考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html DirectoryInfo TheFolder=new Direc ...

  6. RegisterDllAndOcx.bat -批量注册当前文件夹中的dll和ocx

    批量注册当前文件夹中的dll和ocx 新建文件:RegisterDllAndOcx.bat   @echo off echo hello,girl~~ for %%i in (*.dll *.ocx) ...

  7. C++读取文件夹中所有的文件或者是特定后缀的文件

    由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件. 下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件 参考: http://www.2cto. ...

  8. sublime text 3 的在文件夹中查找的快捷键没有反应 的bug冲突

    11:19 2015/11/18 sublime text 3 的在文件夹中查找的快捷键没有反应 的bug冲突 在文件夹查找的快捷键:ctrl shift f没有反应,后来发现是百度输入法与它有问题, ...

  9. IO流的练习2 —— 复制单级文件夹中的文件

    需求:把C:\Users\Administrator\Desktop\记录\测试里面的所有文件复制到 C:\Users\Administrator\Desktop\新建文件夹\copy文件夹中 分析: ...

随机推荐

  1. Image.fromarray的用法

    简而言之,就是实现array到image的转换 详细参考以下博客 https://blog.csdn.net/ybcrazy/article/details/81206411

  2. HTML学习笔记Day9

    一.宽高自适应 网页布局中经常要定义元素的宽和高:但很多时候我们希望元素的大小能够根据窗口或父元素自动调整,这就是自适应,元素自适应在网页布局中非常重要,tanenggou它能够使网页显示更灵活,可以 ...

  3. HTML特殊符号(字符实体)大全

    TML常用特殊字符:只要你认识了 HTML 标记,你便会知道特殊字符的用处. HTML 原代码 显示结果 描述 < < 小于号或显示标记 > > 大于号或显示标记 & ...

  4. str

    print('字符串操作') s='abc DEF hij' print('首字母大写') print(s.capitalize()) print('全大写') print(s.upper()) pr ...

  5. C++ 文件保存

      文件保存: #include <sstream>#include <fstream>using namespace std; /*save to path ./record ...

  6. javascript中click和onclick的区别

    <script type="text/javascript"> $(function(){ $("#btn4").click(function(){ ...

  7. ibatis项目启动报错The string "--" is not permitted within comments【原】

    该错误主要就是因为xml中<!-- [注释]--> 注释与-->之间没有空格造成xml解析错误 sqlMapConfig.xml内容如下 <?xml version=" ...

  8. 阅读:ECMAScript 6 入门(1)

    参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 前言 学了 ...

  9. elasticsearch基本概念与查询语法

    序言 后面有大量类似于mysql的sum, group by查询 elk === elk总体架构 https://www.elastic.co/cn/products Beat 基于go语言写的轻量型 ...

  10. Golang入门教程(三)beego 框架安装

    beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado.sinatra ...