一、问题与解决方法叙述

存在以上两个文件,使用命令打包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文件配置注意事项


基本格式

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要以/结尾