文档章节

jar包中的META-INF 文件夹是干嘛的?

s
 snecker
发布于 2017/06/04 09:59
字数 542
阅读 208
收藏 0

如果平常有注意的话,会发现经常碰到一个叫META-INF的文件夹,比如在tomcat项目中,jar包中解压后.

jar文件本质上是一个基于zip格式的压缩类型,大多数场景下,包含字节码二进制文件,资源文件,然后可以作为一个模块单独提供给第三方使用. 但有时也可以发现与资源文件同级的目录下有一个叫META-INF的文件夹,META-INF有什么作用呢?

找到官网,并尝试翻译了下

如果META-INF文件夹存在的话,是用来存储包和扩展的配置数据,包含安全,版本,扩展和服务

原文是

The META-INF directory, if it exists, is used to store package and extension configuration data, including security, versioning, extension and services.

META-INF下支持四种类型,会被java自动识别并解析,用于配置 应用,扩展,类加载器,服务

  1. MANIFEST.MF

MANIFEST文件用来定义扩展和包相关的数据,

  1. INDEX.LIST

如果使用了jar工具的 "-i"选项,这个文件就会自动生成.文件包含了路径信息和应用或扩展的包定义.它是部分jar索引的实现方式,可用来提高类加载器的加载速度

  1. x.SF

jar包的签名文件,包含清单信息,SF表示signature file, "x" 是文件名

  1. x.DSA The signature block file associated with the signature file with the same base file name. This file stores the digital signature of the corresponding signature file. DSA是一种非对称的数字签名算法.可简单理解为"私钥加密生成数字签名,公钥验证数据及签名", x.DSA是"x.SF"文件关联的同名的"签名块文件",里面存着x.SF的数字签名. SF签名文件和DSA签名块文件可用"jarsigner"命令生成.其实还支持RSA算法,对应的是.RSA的 后缀名

  2. services/

目录文件,存放 服务提供者 的配置文件

  1. 平常还有一种情况,通过maven打包的话,在META-INF 下面默认还会包含maven目录,maven目录下会含有pom相关的配置信息

© 著作权归作者所有

共有 人打赏支持
s
粉丝 1
博文 43
码字总数 10092
作品 0
长沙
技术主管
使用java -jar运行jar包

1.其实命令比较简单:进入相应的目录后,执行java -jar XXX.jar即可! 2.但是,为什么通过Maven打包或者Eclipse export出来的jar不能运行呢?原因很简单,没指定执行哪个类的main方法,如何指...

beanGou
2013/12/06
0
0
制作双击可以直接运行的jar包

将java程序变成可直接双击执行的应用程序! 1.先建立一个空文件夹 2.把所有的源文件拷贝到空文件夹下 3.编译此文件夹下的源文件 4.删除源文件(只是不想让别人看到源代码) 5.jar cvf test.j...

方绍伟
2014/02/25
0
0
android多渠道-N种方法-android多渠道-N种方法---MutiChannelPackup

<h1 MutiChannelPackup<p Android多渠道打包,有网页版,Gradle版,Python版、BAT脚本、Jar版…看大家的喜好选择 META-INF渠道识别型:网页版、Python版、BAT脚本、Jar版、 Manifest渠道识别...

彭建波
2015/10/16
402
0
解压和打包Jar

简介 1. 压缩包: jar cvf filename.jar a.class b.class: 压缩指定文件; jar cvf weibosdkcore.jar *: 全部压缩; 2. 解压包: jar xvf test.jar 详解 jar命令有生成、查看、更新、解开jar...

海阔天空玩世不恭
2016/08/22
22
0
在Eclipse集成开发平台中利用XFire框架发布Webservice

一、正所谓“工欲善其事,必先利其器”,下面就先来配置运行环境吧! 下载xfire-distribution-1.2.6.zip压缩包到本地,解压后将xfire-all-1.2.6.jar和lib文件夹里面的jar放到同一个文件夹xfi...

lingyunspace
2015/07/13
0
16

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
17分钟前
0
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
20分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
21分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
32分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
49分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部