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. jQuery ajax 传递JSON数组到Spring Controller

    jQuery ajax传递单个JSON对象到后台很容易,这里记录的是传递多个JSON对象组成的JSON数组到java 后台,并说明java如何解析JSON数组. 1.js代码 var relation ...

  2. 移动端click事件延时

    在移动端使用click事件会产生300ms的延迟 问题的产生: 移动端存在双击放大的问题,所以在移动端点击事件发生时,为了判断用户的行为(到底是要双击还是要点击),浏览器通常会等待300ms,如果30 ...

  3. [报错]Could not get a resource from the pool

    redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool解决:开启 ...

  4. mysql主从模式下在主库上的某些操作不记录日志的方法

    mysql主从模式下在主库上的某些操作不记录日志的方法 需求场景: 在主库上的需要删除某个用户,而这个用户在从库上不存在(我在接手一个业务的时候,就遇到主从架构用户授权不一致的情况,主库比较全,而从库 ...

  5. How-to: Do Statistical Analysis with Impala and R

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  6. Pandas透视表(pivot_table)详解

    介绍 也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为pivot_table.虽然pivot_table非常有用,但是我发现为了格式化输出我所需要的内容 ...

  7. Oracle_异常

    问题1 描述:plsql客户端列值中的中文都成了问号 分析:客户端和服务端编码不一致所致 解决:1.查询服务端数据库编码 SQL> select userenv('language') from ...

  8. Eclipse 常用技巧及常见问题解决

    文章目录 Eclipse默许函数折叠打开 Eclipse插件: win7屏蔽ctrl+alt+up/down快捷键/ (eclipse冲突) 去掉 eclipse 中自动生成的注释 //TODO 常见 ...

  9. Linux 内核里的数据结构:双向链表

    原文:https://blog.csdn.net/qq_33487044/article/details/78827260 双向链表 Linux 内核自己实现了双向链表,可以在 include/lin ...

  10. 【leetcode-69】 x 的平方根

    (主要是越界问题) 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 ...