那么,对于一个可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由 hh.exe 打开的) 。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包 。
创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下: jar cvfm test.jar manifest.mf test 这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf 。因为要创建可执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST 。
关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了 Main-Class 一项 。这在 MANIFEST 中书写格式如下: Main-Class: 可执行主类全名(包含包名) 例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下: Main-Class: test.Test <回车>; 这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可 。
创建了 manifest.mf 文件之后,我们的目录结构变为: == |-- test | `-- Test.class `-- manifest.mf 这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包 。也就是在目录树中使用“==”表示的那个目录中,使用如下命令: jar cvfm test.jar manifest.mf test 之后在“==”目录中创建了 test.jar,这个 test.jar 就是执行的 JAR 文件包 。
运行时只需要使用 java -jar test.jar 命令即可 。需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样 。
而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java <类名>; 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下) 。3. jar 命令详解 jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar 。
它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件 。不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了 。
我们甚至不需要将 tools.jar 放到 CLASSPATH 中 。使用不带任何的 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 文件名,通常这个参数 。
3.JAR电子书中的MANIFEST.MF文件有什么用META-INF 目录
大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息 。Java 2 平台识别并解释 META-INF 目录中的下述文件和目录,以便配置应用程序、扩展和类装载器:
MANIFEST.MF 。这个 manifest 文件定义了与扩展和包相关的数据 。
INDEX.LIST 。这个文件由 jar 工具的新选项 -i 生成,它包含在应用程序或者扩展中定义的包的位置信息 。它是 JarIndex 实现的一部分,并由类装载器用于加速类装载过程 。
xxx.SF 。这是 JAR 文件的签名文件 。占位符 xxx标识了签名者 。
- qq加好友验证信息都怎么写
- 你耍我怎么写英文
- 家谱个人简介怎么写
- 写小说怎么写古代国名
- 大学生实习情况怎么写
- 企业安全生产和环保状况怎么写
- 大姨妈的繁体字怎么写
- 三星s6手写怎么设置方法
- 申请补助报告怎么写
- 陈字楷体怎么写