文档章节

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

s
 snecker
发布于 2017/06/04 09:59
字数 542
阅读 169
收藏 0
点赞 0
评论 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
博文 38
码字总数 9666
作品 0
长沙
技术主管
使用java -jar运行jar包

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

beanGou ⋅ 2013/12/06 ⋅ 0

自定义taglib示例

1.自定义标签库要编写一个类实现Tag接口,实现它的方法 通常我们只需要继承Tag的实现TagSupport或SimpleTagSupport,重写它的doStart()方法即可 import java.io.IOException; import javax.ser...

木子丰 ⋅ 2015/03/20 ⋅ 0

在Eclipse集成开发平台中利用XFire框架发布Webservice

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

lingyunspace ⋅ 2015/07/13 ⋅ 16

制作双击可以直接运行的jar包

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

方绍伟 ⋅ 2014/02/25 ⋅ 0

jsp自定义标签库打包步骤

jsp自定义标签库打包步骤 第一步:准备工作 1.创建一个目录:例如tag-libraries 2.在tag-libraries下创建另外一个目录:META-INF(必须的) 3.将你编写的“.tld”文件放入“META-INF”目录中...

小姚 ⋅ 2013/01/01 ⋅ 0

android多渠道-N种方法-android多渠道-N种方法---MutiChannelPackup

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

彭建波 ⋅ 2015/10/16 ⋅ 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 ⋅ 0

JSP打入jar包

由于在Servlet3.0中,可以支持将JSP文件打入jar包,只需在src/main/resources中加入META-INF/resources文件夹,然后在其中编写对应的JSP即可访问。如: 该工程为一个maven的jar工程,还有另外...

脚下的节奏 ⋅ 2015/07/16 ⋅ 3

classpath 和 classpath* 区别

classpath 和 classpath* 区别: classpath:只会到你指定的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找. 举个简单的例子,在我的web.xml中...

驛路梨花醉美 ⋅ 2016/08/16 ⋅ 0

使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖

前半部分转自:http://www.xuebuyuan.com/1500726.html 现在基本上都是采用maven来进行开发管理,我有一个需求是需要把通过maven管理的java工程打成可执行的jar包,这样也就是说必需把工程依...

独钓渔 ⋅ 2016/04/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具

压缩打包介绍 使用压缩工具的好处: 使用压缩文件,不仅可以节省磁盘空间,而且在传输时还能节省网络宽带。 我们通常讲的家用宽带和机房宽带100M是有区别的: 机房宽带的上行和下行都是100M,...

Linux_老吴 ⋅ 19分钟前 ⋅ 0

SpringBoot热部署加持

概述 进行SpringBoot的Web开发过程中,我们很多时候经常需要重启Web服务器才能保证修改的 源代码文件、或者一些诸如xml的配置文件、以及一些静态文件生效,这样耗时又低效。所谓的热部署指的...

CodeSheep ⋅ 25分钟前 ⋅ 0

OSChina 周六乱弹 —— 假如你被熊困到树上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》 《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》- 谢...

小小编辑 ⋅ 56分钟前 ⋅ 5

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 今天 ⋅ 1

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部