记一次K8S导出的JAR包修改代码并还原JAR包

最近因为一个客户发来需求,需要修改JAR包里的源代码数据库连接字符串,因为项目是2016年前的项目了,已经没有相关的技术支持人员,现在云服务升级了,需要修改里面的数据库连接地址

通过反编译小程序和APP客户端发现所有图片等数据来自接口,那么现在只有一种办法,就是从K8S集群里把JAR提取出来反编译看看能不能行得通了。。。

 

接下来,我们需要准备以下几个东西:

1、JDK安装

2、IntelliJ IDEA

3、IDEA java-decompiler 插件

对于如何安装JDK和IDEA就不说了,版本无所谓,主要是需要那个反编译插件(试用版就试用版吧)

上面三个准备好后,接下来就是执行命令行进行反编译了

因为我把IDEA安装在D盘了,接下来执行下面的命令:

java -cp "D:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true 要反编译的JAR包.jar 反编译后的目录

 

反编译后,进入到目标的目录中

使用下面的命令将JAR包解压

jar -xvf 文件名.jar

然后它会出现三个目录

BOOT-INF、META-INF、org 这三个目录,另外解压后目录里的JAR包千万别以为没用了,就放在那里不要动

进入BOOT-INF,使用Visual Studio Code等源代码编辑器,编辑好要修改的代码文件。

 

修改好后,继续回到刚才的目录,我们开始还原JAR包,执行以下命令:

jar -uvf0 文件名.jar BOOT-INF

这句话的大概意思就是将BOOT-INF目录里的东西替换到原JAR包里。。。

执行完等一会,当它编译成功后,我们的工作也就完成啦!

posted @ 2025-06-08 20:10  star丶清影  阅读(85)  评论(0)    收藏  举报