Java命令行Jar包打包详解及实战

0 下载量 59 浏览量 更新于2024-09-01 收藏 495KB PDF 举报
本文档主要介绍了在Java命令行环境下对Jar包进行打包的基本操作和两种常见的打包方式。首先,我们了解到在Java中,使用`jar`命令行工具来进行Jar包的打包是非常基础且实用的操作。这个工具提供了一种灵活的方式来创建、更新和归档Java类文件、资源文件和依赖项。 一、jar指令简介 当你在命令行中输入`jar`并回车后,会显示出jar指令的相关选项和帮助信息,这些选项包括创建新jar文件、添加文件到现有jar、更新文件等。这为开发者提供了对jar包打包的控制和定制能力。 二、无MANIFEST清单文件的简单打包 对于结构相对简单、不涉及依赖或需要可执行入口的jar包,可以直接使用`jar cvf`(create verbose file)命令,将编译后的`.class`文件打包到一个名为`myJar.jar`的文件中。这种方式省略了MANIFEST文件,因此不支持使用`java-jar`命令直接运行,因为没有指定主类(Main Class)作为程序入口。 例如,假设我们有`test1.java`, `test2.java`和`Main.java`三者,编译后可以使用以下命令: ``` javac test1.java test2.java Main.java jar cvf myJar.jar Main.class test1.class test2.class ``` 三、带MANIFEST清单文件的打包 对于更复杂的项目,特别是需要包含依赖、设置主类或者需要可执行功能的jar,推荐使用MANIFEST文件。MANIFEST文件包含了关于jar包的重要元数据,如主类路径、依赖关系等。使用`jar cfm`(create with manifest file)命令,需要提供一个自定义的MANIFEST.MF文件,然后将文件和所需内容一起打包: 1. 创建一个MANIFEST.MF文件,例如: ```makefile Manifest-Version: 1.0 Main-Class: com.example.Main Class-Path: ./ ``` 这里`Main-Class`指定主类,`Class-Path`表示包中的类文件都在同一目录下。 2. 使用`jar cfm`打包: ``` javac test1.java test2.java Main.java echo MANIFEST.MF > MANIFEST.MF jar cfm myJar.jar MANIFEST.MF Main.class test1.class test2.class ``` 这样打包的jar包可以通过`java -jar myJar.jar`直接执行,因为MANIFEST已经指定了主类入口。 总结,Java命令行下的Jar包打包涉及到基本操作、MANIFEST文件的作用、不同打包方式的选择以及如何根据实际需求配置。通过理解这些知识点,开发者能更好地管理和创建自己的Java库或应用的jar文件。