前言:
为什么要打jar包?
1、举个例子,当编写一个工具类库,里面有十几个类,每个类对应一个class文件时,为了方便别人调用,是不是要装在一个文件中,方便传递和引用。
2、打jar包还有一个好处,就是不包含源文件,对于一些机密信息的库,jar包和代码混浊是一个首选。
3、方便部署和引用。
打包jar有两类,包含main入口和不包含main入口的(大概的意思是比如一些jar是直接类库引用的,不需要执行,这些就不用包含main入口),这里一般都是包含main入口的进行测试。包含main入口也叫做可执行jar文件。
在打包可执行jar文件时,通常会有一个指定Main-Class入口的文件MANIFEST.MF,一般这个文件是放置在META-INF目录。详细的配置参考:http://www.cnblogs.com/EasonJim/p/6485677.html
war是针对web项目的,同时war包也是为了方便部署。
经过测试,在web项目上也能到处jar包,如果指定了Main-Class入口,也是能正常输出的。
一、命令行:
1、JAR:
jar命令行的说明:jar -h
用法: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项:
-c 创建新档案
-t 列出档案目录
-x 从档案中提取指定的(或所有)文件
-u 更新现有档案
-v 在标准输出中生成详细输出
-f 指定档案文件名
-m 包含指定清单文件中的清单信息
-n 创建新档案后执行 Pack200 规范化
-e 为绑定到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含以下文件
如果任何文件为目录,则对其进行递归处理。
清单文件名,档案文件名和入口点名称的指定顺序
与 'm','f' 和 'e' 标记的指定顺序相同。