JAR是向Web服务器或者企业级Java安装部署类的基础
讲一个Java应用创建为JAR文件,首先进入类所在的目录,然后执行
--------------------
jar cvf test.jar
--------------------
执行完命令后,你会得到app.jar文件了。
指定main-calss的JAR文件制作
先制作manifest.mf文件:
----------struts.jar例子-----------------------------------------------------------------------
Manifest-Version: 1.0
Created-By: Apache Ant 1.5.1
Extension-Name: Struts Framework
Specification-Title: Struts Framework
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.1
Implementation-Title: Struts Framework
Implementation-Vendor: Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.1
Class-Path: commons-beanutils.jar ...
确保文件的最后包括一个空行,否则java不会认可这个清单项。会使倒数第二行的字符丢失。
-------------------------------------------------------------------------------------------------
更详细关于JAR文件的规范请见
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
但是一般情况我们不需要这么详细:
-----------manifest.mf文件----------
Main-Class: com.test.mainclass
----------------------------------------
指定main-class就可以了。
然后执行以下命令
------------------------------------
jar cvfm test.jar ../manifest.mf test
------------------------------------
【注意】
manifest.mf文件不要放在class路径,不然这个文件也会成为JAR文件的一员。
命令中manifest.mf是一个路径,如[../manifest.mf]表示在当前路径的父目录下的文件。
然后在JAR文件所在路径下执行以下命令
---------------------
java -jar test.jar
---------------------
JAR文件就运行起来了。
JAR文件的解冻:
解冻比制作会简单的多。
------------------
jar xvf test.jar
------------------
解冻后的路径为当前路径(就是你cmd窗口或者shell窗口所运行的工作路径)。
比如test.jar在d:/test下,你要解压到d:/temp/aa/ 路径下。
------------------------
cd d:/temp/aa/
cd d:
jar xvf d:/test/test.jar
-----------------------
这样你就可以在d:/temp/aa/下看到test.jar的解冻文件了。
下面说明下JAR具体的解释
--------------------------------------------------------------------------------
jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
--------------------------------------------------------------------------------
其中
{ctxu}
jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:
-c 创建新的 JAR 文件包
-t 列出 JAR 文件包的内容列表
-x 展开 JAR 文件包的指定文件或者所有文件
-u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)
[vfm0M]
其中的选项可以任选,也可以不选,它们是 jar 命令的选项参数
-v 生成详细报告并打印到标准输出
-f 指定 JAR 文件名,通常这个参数是必须的
-m 指定需要包含的 MANIFEST 清单文件
-0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快
-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
[jar-文件]
即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数
[manifest-文件]
即 MANIFEST 清单文件,它是 -m 参数的附属参数
[-C 目录]
表示转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下
再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。
文件名 ...
指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。
如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。