JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。举个例子,如果我们具有如下目录结构的一些文件: == `-- test `-- Test.class把它压缩成 ZIP 文件 test.zip,则这个 ZIP 文件的内部目录结构为: test.zip `-- test `-- Test.class如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为: test.jar |-- META-INF | `-- MANIFEST.MF `-- test `--Test.class
很简单,就是java 源文件得压缩包,可以用 jar xvf 来提取出源文件
如果要简单点,用Winzip得了,还用什么命令行。
jar是一种压错格式,很早以前就已经内建到了jdk里,它最大的特点就是跨平台,应用也很简单,下面给出个例子以求抛砖引玉(在shell下输入jar会有详尽的说明)将两个class文件存档到一个名为 'classes.jar' 的存档文件中: jar cvf classes.jar Test1.class Test2.class
jar cvf classes.jar Test1.class Test2.class
系统会有提示,可按提示操作!
1.MANIFEST.MF 对jar文件比较关键,注意大小写。建议把一个可以运行的.jar解开,然后把里面的MANIFEST.MF 拷出来,修改使用。比如jdk\demo\jfc\SwingSet2。
2.生成好的jar,在window os下,和jre做好关联,然后就可以现.exe程序一样双击执行了。
3.当然,jar可以只是一个简单的文件压缩包,而不是一个应用程序。如果这样就让jar工具替你自动生成一个MANIFEST.MF 就行了。
C:\>jar
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .