打包jar文件

为了便于传输,需要将应用程序打包成jar文件,jar文件就是压缩文件。默认是zip压缩,在Java SE 5.0后,提供了一种pack200的压缩方法。

  • 最常见的打包命令为jar cvf JarFileName File1 File2, 命令形式类似于Linux下的tar命令。

  • 在打包时,jar文件中除了各种资源文件,还包含一个用于描述归档特征的清单文件(mainfest),打包后,它位于META-INFO文件夹下。在打包时,使用m参数指定。

  • 在java SE6中,需要使用e参数指定加载时的主程序,此时对于包含在包内的,需要指定报名,形式为packname.classname。在旧版本的JDK中,也可以在Metafile中使用Main-Class=packname.classname来指定。

  • 在打包时,需要将整个package打在一起,并且指定好加载时的主程序,否则都会导致“找不到主程序”的报错。

例如,在resource包下有一个编译好的Test.class,并且含有资源about.txt,清单文件Test.mf,那么可以在包含resource的目录下,使用如下命令打包:

  • 如果Test.mf中没指定Main-Class,
    jar -cvfme Test.jar resource\Test.mf resource.Test resource\*class resource\*txt

  • 如果Test.mf中指定了Main-Class=resource.Test,那么可以用jar -cvfm Test.jar resource\Test.mf resource\*class resource\*txt

打包之后可以使用java -jar Test.jar执行。

### 使用命令行在 Linux 系统下打包 JAR 文件 在 Linux 系统中,可以通过 `jar` 命令将编译后的 `.class` 文件打包为 `.jar` 文件。该命令是 JDK 提供的工具之一,支持创建、更新和查看 JAR 包内容。 #### 编译 Java文件打包之前,需要先将 `.java` 源文件编译为 `.class` 文件。可以使用以下命令进行编译: ```bash javac -d build/classes src/com/example/*.java ``` 上述命令会将 `src/com/example/` 目录下的所有 `.java` 文件编译为 `.class` 文件,并输出到 `build/classes` 目录中 [^3]。 #### 创建 MANIFEST.MF 文件 为了使生JAR 文件具备可执行能力,需要在打包时指定主类(Main-Class)。为此,首先创建一个名为 `manifest.txt` 的文本文件,并写入以下内容: ``` Manifest-Version: 1.0 Main-Class: com.example.Main ``` 该文件定义了 JAR 包的清单信息,其中 `Main-Class` 表示程序入口类 [^1]。 #### 打包JAR 文件 接下来,使用 `jar` 命令将编译后的类文件打包JAR 文件,并附带自定义的 `MANIFEST.MF` 文件: ```bash jar cfm app.jar manifest.txt -C build/classes . ``` - `c` 表示创建一个新的 JAR 文件。 - `f` 表示指定输出文件名。 - `m` 表示使用自定义的清单文件。 - `-C build/classes .` 表示切换到 `build/classes` 目录后再进行打包 [^1]。 #### 查看 JAR 文件内容 如果需要查看 JAR 文件中的内容,可以使用以下命令: ```bash jar tf app.jar ``` 该命令会列出 JAR 文件中的所有条目 [^4]。 #### 运行 JAR 文件打包后,可以直接通过以下命令运行 JAR 文件: ```bash java -jar app.jar ``` 此命令会调用 JVM 并根据 `MANIFEST.MF` 中指定的 `Main-Class` 启动程序 [^2]。 --- ### 注意事项 - **路径一致性**:确保 `.class` 文件的目录结构与类所在的包名一致。例如,类 `com.example.Main` 应位于 `com/example/Main.class` 路径下 [^3]。 - **依赖管理**:若项目依赖第三方库,可以在 `MANIFEST.MF` 文件中添加 `Class-Path` 条目来声明依赖路径,例如: ``` Class-Path: lib/commons-codec-1.9.jar lib/commons-logging-1.2.jar ``` 该配置将帮助 JVM 在运行时正确加载所需的类库 [^4]。 - **避免手动修改 JAR 文件**:不建议使用 ZIP 工具直接修改 JAR 文件内容,因为这可能导致签名失效或结构损坏 。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值