打包一个可以直接利用java -jar 时可能遇到的问题(如果直接在eclipse中expert按照步骤选择main class导出的话就没有这个问题):
jar cvfm lottery.jar MANIFEST.MF jdbc.properties com
如果出现:
java.io.IOException: invalid header field
这样的错误的话,就说明MANIFEST.MF文件有问题,比如写成了这样:
Manifest-Version: 1.0
Main-Class:com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar
注意:
Main-Class:后面应该有一个空格:
Manifest-Version: 1.0
Main-Class: com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar
这样写就对了注意:最后一行也要有一个回车键。否则后面那一行是不能打包进去的
最后用java -jar lottery.jar就可以运行了
这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,
只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可
最后说明:Manifest 技巧
总是以Manifest-Version属性开头
每行最长72个字符,如果超过的化,采用续行
确认每行都以回车结束,否则改行将会被忽略
如果Class-Path 中的存在路径,使用"/"分隔目录,与平台无关
使用空行分隔主属性和package属性
使用"/"而不是"."来分隔package 和class ,比如 com/example/myapp/
class 要以.class结尾,package 要以 / 结尾
jar cvfm lottery.jar MANIFEST.MF jdbc.properties com
如果出现:
java.io.IOException: invalid header field
这样的错误的话,就说明MANIFEST.MF文件有问题,比如写成了这样:
Manifest-Version: 1.0
Main-Class:com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar
注意:
Main-Class:后面应该有一个空格:
Manifest-Version: 1.0
Main-Class: com.feishan.lottery.view.Index
Class-Path: jar/jdbc_feishan.jar jar/mysql5.0.3.jar
这样写就对了注意:最后一行也要有一个回车键。否则后面那一行是不能打包进去的
最后用java -jar lottery.jar就可以运行了
这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,
只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可
最后说明:Manifest 技巧
总是以Manifest-Version属性开头
每行最长72个字符,如果超过的化,采用续行
确认每行都以回车结束,否则改行将会被忽略
如果Class-Path 中的存在路径,使用"/"分隔目录,与平台无关
使用空行分隔主属性和package属性
使用"/"而不是"."来分隔package 和class ,比如 com/example/myapp/
class 要以.class结尾,package 要以 / 结尾