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:406)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at sun.tools.jar.Main.run(Main.java:172)
        at sun.tools.jar.Main.main(Main.java:1177)

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

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

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(输入 = 647) (输出 = 370)(压缩了 42%)

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

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

时间: 2024-11-07 14:26:51

java.io.IOException: invalid header field的相关文章

java打包遇到问题java.io.IOException: invalid header field

问题:java打包时报以下错误 $ jar -cvmf main.txt test.jar Shufile1.class java.io.IOException: invalid header field at java.util.jar.Attributes.read(Attributes.java:410) at java.util.jar.Manifest.read(Manifest.java:199) at java.util.jar.Manifest.<init>(Manifest.

严重: Error in dependencyCheck java.io.IOException: invalid header field(tomcat启动成功可是訪问web项目404错误)

tomcat启动的时候出现 严重: Error in dependencyCheck java.io.IOException: invalid header field 而且tomcat也不自己主动reload 然后訪问在eclipse里面訪问web页面出现404,原来web程序一直没有被load进tomcat里面 原因:WebContent > META-INF > MANIFEST.MF文件不是多了几个空行就是多了几个空格,导致出现IO错误 解决的方法去掉空格和空行 重新启动tomcat

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

根据网上的解释,这个表示poi读取excel(97-2003)的时候头文件被损坏了,正常的方式:能打开的话,另存一下即可,实在不行直接新建一个内容一样的 本人环境:eclipse部署到tomcat,eclipse下的源码是正确的,只要发布到tomcat就是文件损坏,以前是好的 原因:使用了maven,而且为了配置profile,使用了resource,resource他会把它配置的路径下的文件过一遍,然后用pom定义的变量的值给替换掉, excel不存在替换变量的问题,但应该会检查,估计会打开的

运行报错:java.io.IOException: invalid constant type: 15

jdk,tomcat更新到jdk1.8与 tomcat8 pom.xml文件中更新javassist的版本从3.15到3.18 <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.2-GA</version> </dependency>

ElasticsearchException: java.io.IOException: failed to read [id:0, file:/data/elasticsearch/nodes/0/_state/global-0.st]

from : https://www.cnblogs.com/hixiaowei/p/11213143.html 1.以前装过elasticsearch,重新安装elastic search ,报错 [2019-07-19T14:32:10,720][ERROR][o.e.g.GatewayMetaState ] [master-node] failed to read local state, exiting... org.elasticsearch.ElasticsearchExceptio

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

java.io.IOException: No space left on device 错误

今天碰到比较奇怪的问题: 7/05/14 19:20:24 INFO util.Utils: Fetching http://192.168.31.160:33039/jars/spark_study_java-0.0.1-SNAPSHOT-jar-with-dependencies.jar to /tmp/spark-446068a4-aaa4-4277-b009-908bf0d4ecac/executor-dcc3175b-7d19-4485-81e1-bf31a83a66b4/spark-

java.io.IOException: Attempted read from closed stream

代码如下,执行的时候提示“java.io.IOException: Attempted read from closed stream.” @Test public void test_temp(){ String url="http://ssov1.59iedu.com/login?TARGET=http://med.ihbedu.com:80/gateway/web/sso/auth&js&callback=loginThen&1470491151264&no

spark程序异常:Exception in thread &quot;main&quot; java.io.IOException: No FileSystem for scheme: hdfs

命令: java -jar myspark-1.0-SNAPSHOT.jar myspark-1.0-SNAPSHOT.jar hdfs://single:9000/input/word.txt hdfs://single:9000/output/out1 错误信息: .......... 14/11/23 06:14:18 INFO SparkDeploySchedulerBackend: Granted executor ID app-20141123061418-0011/0 on hos