jar 问题 : java.io.IOException: invalid header field

通过本文, 我们明白了什么是 jar的清单文件 MANIFEST.MF,

简单示例:

E:\ws\Test\WEB-INF\classes>jar cvfm testCL.jar ListTest.class
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:)
at java.util.jar.Manifest.read(Manifest.java:)
at java.util.jar.Manifest.<init>(Manifest.java:)
at sun.tools.jar.Main.run(Main.java:)
at sun.tools.jar.Main.main(Main.java:)

我仅仅只有一个 ListTest.class 文件, 是无法使用jar 的 m 参数的, 去掉就好了。

E:\ws\Test\WEB-INF\classes>jar cvf testCL.jar ListTest.class
已添加清单
正在添加: ListTest.class(输入 = ) (输出 = )(压缩了 %)      

invalid header field 可以理解为 jar命令 的参数, 阅读 java.util.jar.Manifest 源码就知道了哦!

-M 是去掉META-INF目录 及 下面的 MANIFEST.MF文件的意思( 默认是会生成清单文件的):

E:\ws\Test\WEB-INF\classes>jar -cvfM testCL.jar ListTest.class
正在添加: ListTest.class(输入 = ) (输出 = )(压缩了 %)

-C 表示使用另外的 目录, 作为需要打jar包的内容

解决参照http://blog.csdn.net/gz_xiangjun/article/details/6962818

上一篇:java.io.IOException: invalid header field


下一篇:java.io.IOException: Invalid header signature; read 0xE011BDBFEFBDBFEF, expected 0xE11AB1A1E011CFD0