问一个超级简单的问题

internetae 2012-12-19 02:16:18
用jar发布程序时出现java.io.IOException: invalid header field 错误!!!
at java .util.jar.Attributes.read(Attributes.java:389)
at java .util.jar.Manifest.read(Manifest.java:182)
at java .util.jar.Manifest.(int)(Manifest.java:151)
at sun.tools .jar.Main.run(Main.java:151)
at sun.tools .jar.Main.main(Main.java:1149)
清单文件
Mymoon.mf
Manifest-Version: 1.0
Main-Class: MemoryGame
Created-By: 1.2(Sun Microsystems Inc.)
...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2012-12-24
  • 打赏
  • 举报
回复
错误行 都有了,自己看代码。 单步调试
不熟不聊 2012-12-24
  • 打赏
  • 举报
回复
貌似是空格或空行的问题。。
搜集了产生java.io.IOException:invalid header field异常的几个常见问题:
1、Class-path: 的冒号后面要加一个空格
java.io.IOException: invalid header field异常(tomcat5.5中) 
是因为MAINFEST.MF文件的Class-path:后面少了一空格 

Manifest-Version: 1.0 
Class-Path: 
2、Main-Class: 的冒号后面要加一个空格。
java.io.IOException:invalid header field 
at java.util.jar.Attributes.read<Attributes.java:359> 
ar... 
... 
异常位置省略。
当时我的manifest.mf文件内容为:
Manifest-Version: 1.0
Main-Class:My1
Created-By: 1.6.0_10-rc2 (Sun Microsystems Inc.)
出现这个错误后,我反复看了命令格式和manifest的内容,并没有错误。
后来仔细看了下正确的mf格式,发现Main-Class:My1冒号后面要加一个空格。
正确格式如下:
Manifest-Version: 1.0
Main-Class: My1
Created-By: 1.6.0_10-rc2 (Sun Microsystems Inc.)
3、Manifest-Version: 1.0和Class-Path: 之间不允许有空行。
今天神奇一样的遇到了一个异常:java.io.IOException: invalid header field ,昨天还好好的代码,今天就变成不能运行了。
然后在网上查找了一下,发现原因是由于META-INF下的MANIFEST.MF文件,可是我从来没有动过这个文件啊,根据网上的解决办法,我把原来
Manifest-Version: 1.0

Class-Path: 


变成:
Manifest-Version: 1.0
Class-Path: 
也就是去掉空行,但还是没有作用,后来又去掉底下多余的空行,结果还真的不报错了!
引自:http://hi.baidu.com/sppeivan/item/5d1f681593b31609d1d66d3d
chate 2012-12-23
  • 打赏
  • 举报
回复
你的问题描述也太简单了吧!

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧