一、问题与解决方法叙述
存在以上两个文件,使用命令打包jar文件出现如下异常
在网上找了几个博客都说是MAINFEST.MF文件格式有无,检查了好几遍都没发现问题,后来灵机一定,觉得配置文件应该放在class文件的前面,一试果然好使
二、打包、运行jar文件的命令
打包:
jar -cvf test.jar Demo.class
jar -cvfm test.jar MANIFEST.MF Demo.class //注意MANIFEST.MF要放在最前面
jar -cvfm test.jar MANIFEST.MF Demo.class com //com是文件夹
运行:
java -jar test.jar
三、打包文件夹
首先在与要打包的文件夹的同级目录新建一个空的配置文件MANIFEST.MF
然后使用如下命令打包
jar -cvfm com.jar MANIFEST.MF com
对于web项目,可以将class文件所在的根包打包为jar文件(文件名任意),然后将jar文件放到项目的WEB-INF\lib下,不影响项目的运行
四、MANIFEST.MF文件配置注意事项
基本格式
Manifest-Version: 1.0
Class-Path:
Created-By: 1.6.0_06 (Sun Microsystems Inc.)
Main-Class: com.demo.Demo
注意:
每个标签冒号后都跟上一个空格
最后一行需要有一个回车键,否则后面那一行是不能打包进去的
总是以Manifest-Version属性开头
每行最长72个字符,如果超过的话,采用续行
确认每行都以回车键结束,否则改行将会被忽略
如果Class-Pass中存在路径,使用“/”分隔目录,与平台无关
使用空行分隔属性和package属性
使用"/"而不是"."来分隔package和class。比如com/example/myapp/
class要发.class结尾,package要以/结尾