编辑 JAR 包内嵌套的 TXT 文件(Vim 操作)

v编辑 JAR 包内嵌套的 TXT 文件(Vim 操作)

  • [编辑 JAR 包内嵌套的 TXT 文件(Vim 操作)](#编辑 JAR 包内嵌套的 TXT 文件(Vim 操作))
    • [步骤 1:解压外层 JAR 包](#步骤 1:解压外层 JAR 包)
    • [步骤 2:定位并解压内层 JAR 包](#步骤 2:定位并解压内层 JAR 包)
    • [步骤 3:用 Vim 编辑 TXT 文件](#步骤 3:用 Vim 编辑 TXT 文件)
    • [步骤 4:重新打包内层 JAR](#步骤 4:重新打包内层 JAR)
    • [步骤 5:重新打包外层 JAR](#步骤 5:重新打包外层 JAR)
    • [步骤 6:清理临时文件(可选)](#步骤 6:清理临时文件(可选))

编辑 JAR 包内嵌套的 TXT 文件(Vim 操作)

由于 JAR 本质是压缩文件,无法直接修改内部文件,需通过「解压 → 编辑 → 重新打包」的流程操作。

以下是具体步骤:

步骤 1:解压外层 JAR 包

假设外层 JAR 为 outer.jar:

bash 复制代码
mkdir temp_outer  # 创建临时目录
cd temp_outer
jar -xf ../outer.jar  # 解压外层 JAR 到当前目录

步骤 2:定位并解压内层 JAR 包

进入外层 JAR 的 lib 目录,处理目标内层 JAR(例如 inner.jar):

bash 复制代码
cd lib  # 进入外层 JAR 中的 lib 目录
mkdir temp_inner  # 创建内层临时目录
cd temp_inner
jar -xf ../inner.jar  # 解压内层 JAR 到当前目录

步骤 3:用 Vim 编辑 TXT 文件

找到内层 JAR 中需要修改的 TXT 文件(例如 config.txt):

bash 复制代码
vim path/to/config.txt  # 替换为实际文件路径

编辑完成后,按 :wq 保存退出。

步骤 4:重新打包内层 JAR

回到内层 JAR 解压目录的上层,重新生成 inner.jar:

bash 复制代码
cd ..  # 回到 lib 目录(temp_inner 的上层)
jar -cfM inner.jar -C temp_inner .  # 用修改后的文件重新打包

参数说明:

... -c:创建新 JAR

... -f:指定输出文件名

... -M:不自动生成 MANIFEST.MF(保留原配置)

... -C temp_inner .:打包 temp_inner 目录下的所有文件(忽略临时目录本身)

步骤 5:重新打包外层 JAR

回到外层 JAR 解压目录的上层,重新生成 outer.jar:

bash 复制代码
cd ../../  # 回到 temp_outer 的上层
jar -cfM outer.jar -C temp_outer .  # 用修改后的文件重新打包

步骤 6:清理临时文件(可选)

完成后删除临时目录:

bash 复制代码
rm -rf temp_outer

通过以上步骤,即可修改嵌套在 JAR 包内 lib 目录下的 TXT 文件。

相关推荐
随遇而安zx几秒前
【多线程】---JMM 与 volatile 深度解析
java·多线程
邪修king27 分钟前
Re:Linux系统篇(十九):进程篇(八): 进程等待详解:wait/waitpid,僵尸进程到底该如何回收
java·开发语言
啵啵啵鱼39 分钟前
DS-顺序表
java·数据结构·笔记·后端·链表·obsidian
TinyMemory1 小时前
Java 面向对象核心入门(七):方法重载 Overload,同一个方法名能干不一样的活
java·面向对象·overload·方法重载
吴声子夜歌1 小时前
Java扩展——OkHttp
java·开发语言·okhttp
卓怡学长1 小时前
w210基于springboot反诈平台设计与实现
java·spring boot·spring·intellij-idea
萧瑟余晖2 小时前
Java深入解析篇六十一之编译器API(javax.tools)详解
java·开发语言
码云数智-园园2 小时前
C++ STL 容器怎么选?vector、list、map、unordered_map 优缺点对比
java·开发语言
en.en..2 小时前
竖线 |:管道、按位或、掩码组合
java·开发语言