为了便于传输,需要将应用程序打包成jar文件,jar文件就是压缩文件。默认是zip压缩,在Java SE 5.0后,提供了一种pack200的压缩方法。
最常见的打包命令为
jar cvf JarFileName File1 File2
, 命令形式类似于Linux下的tar命令。在打包时,jar文件中除了各种资源文件,还包含一个用于描述归档特征的清单文件(mainfest),打包后,它位于META-INFO文件夹下。在打包时,使用m参数指定。
在java SE6中,需要使用e参数指定加载时的主程序,此时对于包含在包内的,需要指定报名,形式为
packname.classname
。在旧版本的JDK中,也可以在Metafile中使用Main-Class=packname.classname
来指定。在打包时,需要将整个package打在一起,并且指定好加载时的主程序,否则都会导致“找不到主程序”的报错。
例如,在resource包下有一个编译好的Test.class,并且含有资源about.txt,清单文件Test.mf,那么可以在包含resource的目录下,使用如下命令打包:
如果Test.mf中没指定Main-Class,
jar -cvfme Test.jar resource\Test.mf resource.Test resource\*class resource\*txt
如果Test.mf中指定了
Main-Class=resource.Test
,那么可以用jar -cvfm Test.jar resource\Test.mf resource\*class resource\*txt
打包之后可以使用java -jar Test.jar
执行。