【老白学 Java】程序打包,安全可靠

程序打包,安全可靠

码老白
文章来源:《Head First Java》修炼感悟。

在前篇文章中,我们通过 -d 命令可以很轻松地管理程序文件。 今天我们再来试试另一种玩法,把你所有的程序文件打包成一个 .jar 文件,方便你随身携带、拷贝,或者提交给客户。

创建 JAR 文件

JAR(Java Archive,归档文件),也就是我们常说的压缩文件,可以把你需要的类,甚至是整个项目的类文件,统统压缩成单独的一个 .jar 文件,并且无需解压即可通过命令行执行。

下面具体说说如何创建 JAR 文件,首先需要在 classes 目录下下创建 manifest.txt 文件,用来指定 main() 方法包含在哪个类中。 就像这样:

Main-Class: xxx

其中,xxx 表示包含 main() 方法的类,注意没有 .class 扩展名,并且类名后需要加上一个换行。

然后使用 JDK 提供的 jar 工具进行打包,你需要先 cd 到 classes 目录:

$ cd JavaSpace/classes
$ jar -cvmf manifest.txt demo.jar *.class

jar 命令的一些含义:

  • -cvmf manifest.txt 指定配置文件;
  • demo.jar 指定生成的 JAR 文件;
  • *.class 表示对当前目录下的所有类文件打包。

经过以上操作,你会发现 classes 目录中多了一个 demo.jar 文件,使用解压软件可以查看文件内容,其中包含了 MANIFEST.MF 文件以及 classes 目录中的所有类文件。

创建带包结构的 JAR 文件

带有包结构的类文件,打包方式略微有点不同,你需要指定完整的包名。 以 com.dsic.GameHelper.class 为例,你需要在 manifest.txt 中这样指定类名:

Main-Class: com.dsic.GameHelper

然后 cd 到 classes 目录下进行打包:

$ cd JavaSpace/classes
$ jar -cvmf manifest.txt com

注意,这次仅仅指定了第一层包名 com,完整的包名由 jar 自行推断。

执行 JAR 文件

打包完成后,接下来就可以尝试运行 JAR 文件。 因为 manifest.txt 文件中指定了 main() 方法的位置,所以 Java 虚拟机能够顺利地载入类,然后开始执行程序。

首先 cd 到 classes 目录,然后使用 java 命令执行:

$ cd JavaSpace/classes
$ java -jar demo.jar

其中,-jar 表示告诉 Java 虚拟机将要执行的是 JAR 文件,demo.jar 就是实际要执行的 JAR 文件。

查看 JAR 文件

通过 jar 命令不但可以打包,而且还可以查看 JAR 文件。 假设还是上面的那个 demo.jar,我们尝试看看文件内容。 首先 cd 到文件目录:

$ cd JavaSpace/classes
$ jar -tf demo.jar

其中,-tf 就是 table file 的意思,表示列出文件。 执行后类似这样:
查看jar文件命令
可以看到 JAR 文件中除了包含类文件还有一个 MANIFEST.MF 配置文件,里面保存的就是主类信息以及版本等信息。

解压 JAR 文件

再来看看如何解压 JAR 文件,还是先 cd 到文件目录:

$ cd JavaSpace/classes
$ jar -xf demo.jar

命令行中的 -xf extract file 的意思,表示解压文件。 命令执行后就会在当前目录下找到 demo.jar 中包含的所有文件。


《 上一篇 神奇的 -d 命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值