centos修改jar下面的doc文件 虽然成功修改 但是不生效需要重启jar

你想在 CentOS 系统上,不重启正在运行的 jar 包的情况下,修改这个 jar 包内部的 doc 文件,这个需求在日常运维中很常见。

实现思路

jar 包本质上是一种压缩文件格式,我们可以通过jarunzip命令先提取要修改的 doc 文件,编辑完成后再用jar命令将修改后的文件重新打包回原 jar 包,整个过程无需重启 jar 进程。

具体操作步骤

1. 先查看 jar 包内 doc 文件的路径(确认文件位置)

bash

运行

复制代码
# 列出jar包内所有文件,找到目标doc文件的路径
jar tf your_app.jar | grep .doc
# 示例输出:BOOT-INF/classes/static/docs/readme.doc

替换your_app.jar为你的实际 jar 包名称,grep .doc用于过滤出所有 doc 文件,确认文件在 jar 内的具体路径。

2. 提取 doc 文件到本地

bash

运行

复制代码
# 提取指定路径的doc文件到当前目录(会保留原目录结构)
jar xf your_app.jar BOOT-INF/classes/static/docs/readme.doc
# 执行后会在当前目录生成 BOOT-INF/classes/static/docs/ 目录,里面有readme.doc

如果没有jar命令,先安装:yum install -y java-1.8.0-openjdk-devel(根据你的 JDK 版本调整)。

3. 编辑 doc 文件

bash

运行

复制代码
# 用vim编辑(如果是纯文本文档)
vim BOOT-INF/classes/static/docs/readme.doc

# 如果是Word格式的doc文件,建议先下载到本地编辑后再上传:
# 1. 下载文件到本地(用scp)
scp root@你的服务器IP:/当前目录/BOOT-INF/classes/static/docs/readme.doc 本地路径
# 2. 本地编辑完成后上传覆盖
scp 本地路径/readme.doc root@你的服务器IP:/当前目录/BOOT-INF/classes/static/docs/
4. 将修改后的 doc 文件重新打包回 jar 包

bash

运行

复制代码
# 更新jar包内的指定文件(关键:u参数表示更新,无需解压整个jar)
jar uf your_app.jar BOOT-INF/classes/static/docs/readme.doc

这个命令会直接替换 jar 包内原有 doc 文件,不会影响 jar 包其他内容,也无需重启 jar 进程。

5. 验证修改是否生效

bash

运行

复制代码
# 再次查看jar包内的doc文件内容(如果是纯文本)
jar xf your_app.jar BOOT-INF/classes/static/docs/readme.doc -O | cat
# -O 参数表示将文件输出到标准输出,直接查看内容是否修改成功

注意事项

  1. 如果 jar 包被进程占用,jar uf命令依然可以执行(因为只是修改文件内容,不影响进程读取);
  2. 如果 doc 文件是程序运行时实时读取的(比如前端页面调用),修改后立即生效;如果是程序启动时加载到内存的,可能需要触发程序重新加载(比如接口刷新),但无需重启 jar;
  3. 操作前建议备份 jar 包:cp your_app.jar your_app.jar.bak,防止操作失误。

总结

  1. 核心命令:jar xf提取文件、jar uf更新 jar 包内文件,无需解压整个 jar;
  2. 操作关键:先确认 doc 文件在 jar 内的路径,修改后用jar uf直接更新,全程无需重启 jar 进程;
  3. 安全建议:操作前备份 jar 包,避免文件损坏。
相关推荐
半壶清水15 小时前
如何在IDEA中将JavaFX项目打包EXE文件
java·windows·intellij-idea·jar
magic_kid_20102 天前
Flink on YARN 依赖/JAR 包问题排查指南
flink·jar·包冲突
Hello.Reader4 天前
PyFlink JAR、Python 包、requirements、虚拟环境、模型文件,远程集群怎么一次搞定?
java·python·jar
cly16 天前
使用 JAR 包部署 Java 应用(以 NginxWebUI 为例)
java·开发语言·jar
半壶清水6 天前
IDEA中将java项目打包成JAR的详细过程
java·intellij-idea·jar
因我你好久不见6 天前
Windows部署springboot jar支持开机自启动
windows·spring boot·jar
susu10830189119 天前
docker部署 Java 项目jar
java·docker·jar
KawYang9 天前
Spring Boot 使用 PropertiesLauncher + loader.path 实现外部 Jar 扩展启动
spring boot·后端·jar
howeres9 天前
基于 Spring Boot 的插件化 JAR 包热加载方案
spring boot·jar
杜子不疼.10 天前
Spring Boot 打包部署全攻略:Jar vs War
人工智能·spring boot·后端·jar