Java 程序打包成 jar 包
方法一:通过 jar 命令
下面是 jar 命令的帮助说明:
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 m、f 和 e 标志的指定顺序相同。
示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 mymanifest 并将 foo/ 目录中的所有文件归档到 classes.jar 中:
jar cvfm classes.jar mymanifest -C foo/ .
下文假设编译后的 class 文件在 bin 目录下
一、打包成一般的 jar 包
输入如下命令即可:
jar cvf counter.jar -C bin .
其中,-C bin 实际上是告诉 jar 命令先 cd 到 bin 目录下,再在此目录执行没有参数 -C bin 的命令,等价于:
cd bin
jar cvf counter.jar . // "."代表当前路径
二、打包成可运行的 jar 包
要打包成可运行的 jar 包,有两种方法,一是手动创建 MANIFEST.MF
文件,并在其中指定主类;二是使用 jar 的 -e 参数指定可运行 jar 包的入口点(即 main 类的完全名称)。
以 Java 源代码行数统计程序的打包为例,演示如何打包:
1. 手动创建 MANIFEST.MF 文件:
1)首先编辑 MANIFEST.MF 文件,内容如下:
Manifest-Version: 1.0
Created-By: rsljdkt
Class-Path: .
Main-Class: Main
说明:
第一行指定清单的版本,若无,则 JDK 默认生成: Manifest-Version: 1.0
第二行指明创建的作者,若无,则 JDK 默认生成 Created-By: 1.6.0_22(Sun Microsystems Inc.)
第三行指定主类所在类路径
第四行指明程序运行的主类
2)使用 jar 命令进行打包:
jar cvfm counter.jar MANIFEST.MF -C bin .
说明:
参数 f:指定打包后的包名。
参数 m:指定自定义的 MANIFEST.MF 清单文件,否则,JDK 会自动生成不包含 Main-Class 的默认清单。
参数 c:指定是创建新的归档文件。
参数 v:在标准输出中生成详细输出,该选项是可选的。
2. 使用-e 参数指定入口点:
执行如下命令即可:
jar cvfe counter.jar Main -C bin .
方法二:使用 Eclipse 的 Export 功能:
一、打包成一般的 jar 包:
步骤如下:
1)在要打包的项目上右击,选择 Export
2)在弹出的窗口中,选择 Java -> JAR File,然后点击 next 按钮
3)在 JAR File Specification 窗口中,设置打包成的文件名和存放位置,点击两侧 next
4)在 JAR Manifest Specification 窗口中,设置 MANIFEST.MF 清单文件的配置,若仅仅打包成单纯的 jar 包的话,不用做任何修改,采取默认即可,若打包成可执行 jar 包的话,可以使用已存在的 MANIFEST 文件或者直接选择 Main class
5)点击 Finish 按钮,完成打包。
二、打包成可运行的 jar 包
步骤如下:
1)在要打包的项目上右击,选择 Export
2)在弹出的窗口中,选择 Java -> Runnable JAR File,然后点击 next 按钮
3)在 Runnable JAR File Specification 窗口中,选择 Launch configuration 和 Export destination
4)点击 Finish 按钮,打包完成。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论