文档章节

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

s
 snecker
发布于 2017/06/04 09:59
字数 542
阅读 500
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

windows10小鹤双拼注册表

《安全第一》直接发文本内容,自己建文本,改文本后缀reg。 使用方法: 1.复制下示文本内容,打开你的文本编辑器(#记事本notepad或其他++),粘贴文本内容并保存在任意位置(不影响使用) ...

漫步海边小路
5分钟前
0
0
一、数据挖掘

数据挖掘的发展动力---需要是发明之母 数据爆炸问题 自动数据收集工具和成熟的数据库技术使得大量的数据被收集,存储在数据库、数据仓库或其他信息库中以待分析。我们拥有丰富的数据,但却缺...

凯文加内特
8分钟前
0
0
Java线程池ThreadPoolExecutor

线程池 ThreadPoolExecutor 线程池是ExecutorService的实现,可以通过Executors执行工厂构造不同类型的执行服务(线程池)。 ThreadPoolExecutor线程池使用的是阻塞队列BlockingQueue。 用于...

器石_
9分钟前
1
0
Mybatis 实现SQL拦截并在控制台打印SQL和参数

注:可以拦截sql 执行时间,优化sql。并打印sql 以及参数 第一步:创建类: SqlPrintInterceptor 并实现 Interceptor 该类如下: package com.ra.common.plugin;import org.apache.ibati...

轻量级赤影
12分钟前
1
0
Log4j2 配置

config: <?xml version="1.0" encoding="UTF-8"?><!-- http://logging.apache.org/log4j/2.x/manual/appenders.html --><!-- status 负责打印日记系统的 WARN 级别以及以上的日记 --><C......

Credo-Zhao
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部