idea修改jar包中的源码

idea修改jar包中的源码

一、背景

最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换class文件再打成jar包的文章。

二、具体步骤

1、下载冰蝎项目jar包,放入D盘目录下:

idea修改jar包中的源码

2、使用IDEA新建一个maven项目,这里就叫test_123:

idea修改jar包中的源码

3、打开File -> Project Structure:

idea修改jar包中的源码

在Libraries中加入刚刚下载的jar包:

idea修改jar包中的源码

加载完如下,Apply和OK即可。

idea修改jar包中的源码

此时整个项目结构如下:

idea修改jar包中的源码

4、假设现在想要修改包中的ShellService类,就需要在我们的项目中创建一个同名的包以及同名的ShellService类,然后将jar中的ShellService类的内容复制过去:

idea修改jar包中的源码

5、看到复制过去之后,代码中有报错,此时就需要我们自己修改这些报错。

这里我遇到的大致有两类报错:

  • 一类是java版本的报错,整个项目使用的jdk版本是1.5,但某些函数只能在jdk1.8中使用

    idea修改jar包中的源码idea修改jar包中的源码

    此时就需要修改项目的编码,这里主要也是在File->Project Structure -> Modules中调整Language Level为jdk 8:

    idea修改jar包中的源码

    然后在Project一项,也修改成jdk8:

    idea修改jar包中的源码

    在File -> Settings中找到Java Compiler项,修改编译环境为1.8:

    idea修改jar包中的源码

  • 另一类问题是通过class文件反编译得到的java源码中存在变量重复声明的问题:

    idea修改jar包中的源码

    这里只需要删除重复多余的声明即可。

6.修改完错误之后,即可编译项目:

idea修改jar包中的源码

7.编译完成之后,在target目录会生成ShellService.class文件:

idea修改jar包中的源码

8、解压jar包,然后用刚刚生成的ShellService.class替换掉jar包解压之后文件夹内net/rebeyond/behinder/core目录下的ShellService.class:

idea修改jar包中的源码

9、回到目录下,进入cmd窗口,使用下面的命令重新生成jar包:


执行完会在当前目录生成一个test.jar的文件,该jar包即为修改源码并替换class文件之后的jar包。

三、参考

1、https://www.javatt.com/p/83085

今天的文章
idea修改jar包中的源码分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/129740.html

(0)
编程小号编程小号
上一篇 2024-09-13
下一篇 2024-09-13

相关推荐