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

今天有人问到 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。

打开之后发现里边只有:

1
2
Manifest-Version:  1.0
Class-Path:

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 里边还可以放啥,可击上面文字中提供的的连接。好长一片英文,感兴趣的话,慢慢看吧。


http://www.cnblogs.com/demingblog/p/5653844.html


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值