jar打包出现java.io.IOException: invalid header field 解决方案

执行:

D:\aaa\DMDemo>jar -cvfm demo.jar MANIFEST.MF com
Java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:393)
        at java.util.jar.Manifest.read(Manifest.java:182)
        at java.util.jar.Manifest.<init>(Manifest.java:52)
        at sun.tools.jar.Main.run(Main.java:132)
        at sun.tools.jar.Main.main(Main.java:1022)

----------------------------------------------  

错误分析:

Manifest-Version: 1.0
Class-Path: 
Created-By: 1.6.0_06 (Sun Microsystems Inc.)
Main-Class: com.demo.HelloWord

每个标签冒号后都跟上一个空格

最后一行需要有一个回车键,否则后面那一行是不能打包进去的

------------------------------------------------

再执行:

D:\aaa\DMDemo>jar -cvfm demo.jar MANIFEST.MF com
标明清单(manifest)
增加:com/(读入= 0) (写出= 0)(存储了 0%)
增加:com/demo/(读入= 0) (写出= 0)(存储了 0%)
增加:com/demo/HelloWord.class(读入= 547) (写出= 341)(压缩了 37%)

D:\aaa\DMDemo>java -jar x.jar
Unable to access jarfile x.jar

D:\aaa\DMDemo>java -jar demo.jar
Hello Word

D:\aaa\DMDemo>

-------------------------------------------------------------------
最后说明:Manifest技巧

   总是以Manifest-Version属性开头

   每行最长72个字符,如果超过的话,采用续行

   确认每行都以回车键结束,否则改行将会被忽略

   如果Class-Pass中存在路径,使用“/”分隔目录,与平台无关

   使用空行分隔属性和package属性

   使用"/"而不是"."来分隔package和class。比如com/example/myapp/

   class要发.class结尾,package要以/结尾

 

如果依赖了多个jar包,可以使用空格进行分割。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值