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文件拿出来,打开如下:
密密麻麻一大片,是一行行的,类似配置文件,前面一个'key' 后面一个‘value’
具体这些玩意有啥用,META-INF 里边还可以放啥,可击上面文字中提供的的连接。好长一片英文,感兴趣的话,慢慢看吧。
解决方法:1. 首先,检查你的计算机上是否安装有其他程序,如果有,请先卸载它们,以免影响到unitymeta的删除。
2. 将unitymeta文件夹复制到另一台电脑上,然后在该电脑上删除unitymeta文件夹。
3. 运行CCleaner软件,清除unitymeta文件夹中的注册表项和其他垃圾文件。
4. 使用命令行工具运行“del/f/s/q unitymeta”命令,强制删除unitymeta文件夹。
5. 重新启动计算机,检查unitymeta文件夹是否已经删除。
您好,使用 JDK 的 jar 命令打JAR 文件包时,这个 JAR 文件的内部目录结构为: \x0d\x0a|-- META-INF\x0d\x0a\x0d\x0a| `-- MANIFEST.MF \x0d\x0a`-- test \x0d\x0a`--Test.class\x0d\x0a这个是生成的jar文件中的部分,与电脑无关,可以删除的。希望能够帮到您欢迎分享,转载请注明来源:内存溢出
评论列表(0条)