加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件

发布时间:2021-05-21 07:23:14 所属栏目:大数据 来源: https://www.jb51.cc
导读:? 今天有人问到 Meta-INF文件夹是干啥的,Meta-INF文件夹的作用, Meta-INF文件夹能删吗,还有项目的Meta-INF下面一般会有个MANIFEST.MF 文件,都是干啥的。 ? 百度搜了一下,基本找不到答案。于是上stakoverflow搜,得到如下答案: ? If you remove Meta-IN

  

?

今天有人问到 Meta-INF文件夹是干啥的,Meta-INF文件夹的作用, Meta-INF文件夹能删吗,还有项目的Meta-INF下面一般会有个MANIFEST.MF 文件,都是干啥的。

?

百度搜了一下,基本找不到答案。于是上stakoverflow搜,得到如下答案:

?

If you remove Meta-INF from a jar then there is no MANIFEST.MF and so java -jar can't find the main class.

You can create jars without Meta-INF but when you are going to execute a jar a Meta-INF/MANIFEST.MF is required.

See?http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html

?

这句英文很简单,简单翻译如下:

如果你将Jar中的Meta-INF文件夹删除,那么jar文件里边就没有MANIFEST.MF文件。那么,java -jar就找不到main class.

没有Meta-INF你仍然可以创建一个Jar文件。但是,当你想要执行jar文件的时候,这个jar是需要具备?Meta-INF/MANIFEST.MF的。

?

我们在使用eclipse或者myeclipse新建项目之后,在项目中可以找到Meta-INF文件夹,下面有个MANIFEST.MF。

打开之后发现里边只有:

Manifest-Version: 1.0
Class-Path: 

瞬间变有疑问:这么少点信息,有啥作用。为啥上面那段英文说的这个文件这么的不可或缺。

于是我随便在项目的lib中找了一个jar文件commons-io-2.3.jar,打开,把里边的MANIFEST.MF文件拿出来,打开如下:

Manifest-Version: 1.0
Export-Package: org.apache.commons.io.output;version="2.3",org.apache.
 commons.io.monitor;version="2.3",org.apache.commons.io.filefilter;ver
 sion="2.3",org.apache.commons.io.comparator;version="2.3",org.apache.
 commons.io.input;version="2.3",org.apache.commons.io;version="2.3"
Implementation-Title: Commons IO
Built-By: ggregory
Tool: Bnd-1.50.0
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Specification-Title: Commons IO
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-SymbolicName: org.apache.commons.io
X-Compile-Target-JDK: 1.6
Implementation-Version: 2.3
Specification-Vendor: The Apache Software Foundation
Bundle-Name: Commons IO
Created-By: Apache Maven Bundle Plugin
X-Compile-Source-JDK: 1.6
Bundle-Vendor: The Apache Software Foundation
Build-Jdk: 1.6.0_31
Bundle-Version: 2.3.0
Bnd-LastModified: 1334069963279
Bundle-ManifestVersion: 2
Bundle-Description: The Commons IO library contains utility classes,s
 tream implementations,file filters,file comparators,endian transfo
 rmation classes,and much more.
Bundle-DocURL: http://commons.apache.org/io/
Implementation-Build: tags/2.3-RC1@r1311772; 2012-04-10 10:59:15-0400
Specification-Version: 2.3
Include-Resource: Meta-INF/LICENSE.txt=LICENSE.txt,Meta-INF/NOTICE.txt
 =NOTICE.txt
Archiver-Version: Plexus Archiver

  密密麻麻一大片,是一行行的,类似配置文件,前面一个'key' 后面一个‘value’

具体这些玩意有啥用,Meta-INF 里边还可以放啥,可击上面文字中提供的的连接。好长一片英文,感兴趣的话,慢慢看吧。

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读