执行:
Exception in thread "main" 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 java.util.jar.JarFile.getManifestFromReference(JarFile.java:160)
at java.util.jar.JarFile.getManifest(JarFile.java:146)
at org.apache.hadoop.util.RunJar.main(RunJar.java:94)
----------------------------------------------
错误分析:
Manifest-Version: 1.0
Class-Path:
Created-By: 1.6.0_06 (Sun Microsystems Inc.)
Main-Class: com.demo.HelloWord
每个标签冒号后都跟上一个空格
最后一行需要有一个回车键,否则后面那一行是不能打包进去的
------------------------------------------------------------------
同时注意MANIFEST.MF要存放到META-INF目录下
-------------------------------------------------------------------
最后说明:Manifest技巧
总是以Manifest-Version属性开头
每行最长72个字符,如果超过的话,采用续行
确认每行都以回车键结束,否则改行将会被忽略
如果Class-Pass中存在路径,使用“/”分隔目录,与平台无关
使用空行分隔属性和package属性
使用"/"而不是"."来分隔package和class。比如com/example/myapp/
class要发.class结尾,package要以/结尾
MANIFEST.MF实例
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Jimmy
Build-Jdk: 1.6.0_13
Main-Class: com.apache.test.MainStart
Class-Path: lib/test-lib-0.0.1-SNAPSHOT.jar lib/commons-io-2.4.jar l
ib/commons-lang-2.6.jar lib/commons-pool-1.6.jar lib/fastjson-1.1.31.
jar lib/jedis-2.1.0.jar lib/msgpack-0.6.7.jar lib/json-simple-1.1.1.j
ar lib/junit-4.10.jar lib/hamcrest-core-1.1.jar lib/javassist-3.16.1-
GA.jar lib/protobuf-java-2.4.1.jar lib/gson-2.2.4.jar