linux 解压修改压缩jar包

本文详细介绍如何使用Maven打包Java应用程序,并提供了三种修改已打包jar文件配置的方法:直接使用vim编辑,利用jar命令替换或新增文件,以及解压、修改后再重新打包。每种方法都附有具体操作步骤。

打包以及修改jar包

cd genesys_data_etl
mvn clean package -Poffline -Dmaven.test.skip=true

日志如下:

() [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ genesys_data_etl --- [INFO] Building jar: /Users/xx/IdeaProjects/genesys_data_etl/target/genesys_data_etl-0.0.1-SNAPSHOT.jar ()

生成jar包

此时可以通过命令

java -jar genesys_data_etl-0.0.1-SNAPSHOT.jar 

运行jar包。

但是要修改jar包中的配置文件怎么办呢?

方式一 通过vim命令直接修改保存jar。超方便。

1.通过vim命令直接编辑jar
vim xxx.jar 该命令首先会列出全部文件,可以通过输入/abc来搜索,定位到对应的abc文件后回车进入配置文件内进行编辑,:wq保存。

方式二 通过jar命令替换jar包中的文件(也可新增)

1.列出jar包中的文件清单
jar tf genesys_data_etl-0.0.1-SNAPSHOT.jar
2.提取出内部jar包的指定文件
jar xf genesys_data_etl-0.0.1-SNAPSHOT.jar BOOT-INF/classes/realtime/t_ivr_data_bj.json
3.然后可以修改文件
vim BOOT-INF/classes/realtime/t_ivr_data_bj.json
4.更新配置文件到内部jar包.(存在覆盖,不存在就新增)
jar uf genesys_data_etl-0.0.1-SNAPSHOT.jar BOOT-INF/classes/realtime/t_ivr_data_bj.json     
4.1更新内部jar包到jar文件
jar uf genesys_data_etl-0.0.1-SNAPSHOT.jar 内部jar包.jar
5.可以查看验证是否已经更改
vim genesys_data_etl-0.0.1-SNAPSHOT.jar

方式三 解压jar包,修改后重新打包jar

1.解压
unzip genesys_data_etl-0.0.1-SNAPSHOT.jar 
2.移除jar包,最好备份
rm genesys_data_etl-0.0.1-SNAPSHOT.jar
3.重新打包
jar -cfM0 new-genesys_data_etl-0.0.1-SNAPSHOT.jar *
或者
jar -cvfm0 genesys_data_etl-0.0.1-SNAPSHOT.jar ./META-INF/MANIFEST.MF ./
4.运行
java -jar new-genesys_data_etl-0.0.1-SNAPSHOT.jar
jar命令参数:
-c 创建新的存档
-f 指定存档文件名
-M 不配置配置清单,这样还可以使用maven生成的配置清单也就是MANIFEST.MF
-0 不进行压缩,如果压缩会有问题
-m 指定清单文件
-t 列出归档目录
-x 从档案中提取指定的 (或所有) 文件 
-u 更新现有的归档文件 
-v 在标准输出中生成详细输出

### 解压 JAR 到指定目录的方法 在 Linux 系统中,JAR 本质上是一个 ZIP 格式的压缩包。因此,可以使用 `unzip` 命令或 Java 官方提供的 `jar` 命令来解压 JAR 到指定目录。以下是两种方法的具体使用说明: #### 方法一:使用 `unzip` 命令 `unzip` 是一个常用的解压工具,可以直接JAR 解压到指定目录。需要注意的是,虽然 `unzip` 可以用于解压 JAR ,但可能会导致某些文件格式问题,特别是在跨平台使用时[^2]。 命令格式如下: ```bash unzip test.jar -d /目标目录/ ``` - `test.jar` 是需要解压JAR 名称。 - `-d /目标目录/` 指定了解压的目标路径。 #### 方法二:使用 `jar` 命令 为了确保兼容性,推荐使用 Java 官方提供的 `jar` 命令来解压 JAR 。此命令能够更好地处理 JAR 中的元数据和特殊文件格式[^1]。 命令格式如下: ```bash jar -xvf test.jar -C /目标目录/ ``` - `test.jar` 是需要解压JAR 名称。 - `-xvf` 表示解压并显示详细信息。 - `-C /目标目录/` 指定了解压的目标路径。 #### 注意事项 1. 如果目标目录不存在,需要提前创建该目录,例如使用 `mkdir -p /目标目录/` 创建。 2. 在解压之前,建议检查 JAR 的内容以避免覆盖重要文件。可以使用以下命令查看 JAR 内容: ```bash jar -tvf test.jar ``` 或者使用 `unzip` 查看内容: ```bash unzip -l test.jar ``` ### 示例代码 假设有一个名为 `example.jar` 的 JAR ,目标是将其解压到 `/home/user/jar_output/` 目录下。 使用 `unzip` 命令: ```bash unzip example.jar -d /home/user/jar_output/ ``` 使用 `jar` 命令: ```bash jar -xvf example.jar -C /home/user/jar_output/ ``` 如果目标目录不存在,可以先创建: ```bash mkdir -p /home/user/jar_output/ ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值