Java应用程序的打包发布

2022-09-17

1 jar文件简介

jar文件格式以流行的zip文件格式为基础。与zip文件不同的是, jar文件不仅用于压缩和发布, 而且还用于部署和封装库、组件和插件程序, 并可被像编译器和JVM这样的工具直接使用[1]。在jar中包含特殊的文件, 如MANIFEST和部署描述符, 用来指示工具如何处理特定的jar文件。在发布Java应用程序时, 通常使用jar命令生成相应的jar文件。jar文件通常用来压缩保存多个c l a s s文件, 可置入标明主类的文件M A N I F E S T.M F, 这样在装有J R E (J a v a Runtime Environment, Java运行环境) 的机器上双击jar文件, 即可执行[2]。

2 jar命令详解

虽然jar文件容易建立, 但要创建一个可正常执行的jar文件, 还是需要关注多个方面的细节。

jar命令的使用格式如下。

j a r{c t x u}[v f m 0 M][j a r-文件][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命令打包时会自动把该目录中的所有文件和子目录放入包中。

3 使用jar命令发布Java程序举例

我们使用一个实例来说明Java应用程序的打包发布, 假设我们编写的Java应用程序源文件为:MainClass.java、SubClass1.java、Sub Class2.java。其中, Main Class.java为主类所在的源文件, 主类名为MainClass。那么, 我们应该怎样将其打包发布呢?具体的操作步骤如下。

(1) 首先, 我们需要将java源文件全部编译, 生成字节码文件。假设生成的字节码文件为:MainClass.class、SubClass1.class、Sub Class2.class。

(2) 在当前目录下使用jar命令将其打成jar文件包MyApplication.jar, 命令如下:

其中, 参数列表中的c指的是创建新的jar文件包, v指的是生成详细报告并显示到标准输出, f指的是指定j a r文件名, MyApplication.jar指的是我们创建的jar文件包名, *.class指的是将当前目录下所有的字节码文件全部导入新生成的MyApplication.jar包中。注意, 当前这个jar包并不能双击直接运行。

(3) 通过解压缩工具, 即可查看并修改MyApplication.jar包中的内容。例如使用WinRAR解压缩工具, 打开这个jar包, 其的目录如下。

其中M E T A-I N F文件夹下M A N I F E S T.M F文件包含相应的文件信息, 并可用来指明运行环境如何处理特定的jar文件, 其内容如下。

其参数含义为, Manifest版本为1.0版, 开发运行环境JDK版本为1.6.0_07版。需要在其后加上一行。

其中“MainClass”为主类名称, 指明程序入口, 使得程序可以自动运行, 注意, “:”后面有一个空格。

(4) 如果操作系统下安装了解压缩软件, 如WinRAR等, 则在默认状态下jar文件就会与其关联, 导致双击操作指定为解压缩, 而不是运行jar文件中的类。因此, 需要编写一个批处理文件runable.bat指定其运行方式, 其内容如下。

在MS-DOS环境下, 批处理文件bat文件是可执行文件, 有一系列命令构成, 其中可以包含对其他程序的调用。

在本例中, javaw用于静默执行java程序, -j a r用于运行打包好的j a r包, MyApplication.jar则指明了包名。

(5) 将My Application.jar和runable.bat放在同一目录下, 双击runable.bat即可自动执行程序。

(6) 这时最好另外再创建一个帮助文件, 如help.txt, 内容为:“请双击runable.bat文件运行本程序”。

(7) 最后, 将r u n a b l e.b a t文件、MyApplication.jar文件和帮助文件help.txt一起发布。

4 结语

Java程序不像其他程序设计语言编写的程序, 可直接生成可执行文件, 它需要在JDK编译环境下或其他集成环境下运行;或是利用JDK所提供的jar命令, 对字节码文件进行打包发布。本文通过实例介绍了Java应用程序的打包发布的基本流程。

摘要:Java语言是近年来较为流行的编程语言, Java应用程序编写并编译运行后, 需要对其进行打包发布。本文简要介绍了Java应用程序打包发布的流程, 并针对其中的一些常见问题做出了解答。

关键词:Java,程序发布,jar

参考文献

[1] 胡伏湘, 雷军环.Java程序设计实用教程[M].北京:清华大学出版社, 2005:292~293.

[2] 耿祥义.Java课程设计[M].北京:清华大学出版社, 2004:21~22.

上一篇:关于我国未来民法典的几点思考下一篇:时代背景下关于如何做好和谐社会思想政治工作的几点思考

本站热搜