Java Jar 包反编译

Java Jar 包反编译JavaJar 包反编译关键词 javajarjavac 编译反编译修改源码文章目录 JavaJar 包反编译 1 安装反编译工具 Luyten Windows 安装示例 1 1 下载 luyten1 2 安装 maven1 2 1 下载最新 Maven 程序 1 2 2 解压到本地 1 2 3 配置环境变量 1 2 4 查看 maven 版本 1 2 5 配置本地仓库路径 1 3 安装 wget1 3 1 下载 wget exe1 4 使用 maven 对 luyten 项目进行编译和打包

Java Jar 包反编译

关键词:java jar javac luyten classpath 编译 反编译 修改 源码


1.安装反编译工具Luyten(Windows安装示例)

1.1 下载luyten

项目地址:https://github.com/deathmarine/Luyten

在这里插入图片描述

1.2 安装maven

1.2.1 下载最新Maven程序

https://maven.apache.org/download.cgi

在这里插入图片描述

1.2.2 解压到本地

像我的话就是解压到 F:\Program\java\

文件改名为 apache-maven

在这里插入图片描述

1.2.3 配置环境变量

新建环境变量 MAVEN_HOME

在这里插入图片描述

编辑环境变量Path,追加%MAVEN_HOME%\bin\

在这里插入图片描述

1.2.4 查看maven版本

【Win】+R -> cmd

mvn -v 

在这里插入图片描述

1.2.5配置本地仓库路径

在F:\Program\java\目录下新建maven-repository文件夹,该目录用作maven的本地库

打开F:\Program\java\maven\conf\settings.xml文件,查找下面这行代码:

 
    
      /path/to/local/repo 
     

1.3 安装wget

1.3.1 下载wget.exe

https://eternallybored.org/misc/wget/

在这里插入图片描述

1.4 使用 maven 对 luyten 项目进行编译和打包

在这里插入图片描述

看到BUILD SUCCESS 即为安装完成,如下图

在这里插入图片描述

安装完成后,进入 Luyten-master 文件夹下新增的 target 文件夹

双击 luyten-0.5.3.exe 即可使用


2.反编译

使用反编译工具反编译 jar 包,在 jar 包中找到自己的所需文件,并导出为 java 文件

在这里插入图片描述

在这里插入图片描述


3.修改源码

不熟悉的话可以先进行简单修改,如添加日志输出、新增函数等。

对代码比较熟悉的时候,可以直接修改源码。


4.编译修改后的新代码

首先,要将 java 文件编译为 class 文件。

编译准备:准备你需要依赖的jar包。

编译命令格式(windows 下)

javac -cp "dir/file.jar;dir/file.jar" xx.java javac -cp "dir/*;dir/*" xx.java 

使用注意要点

  • cp 就是 classpath
  • 需要使用 “” 将 jar 包括起来,””中的 jar 包一般包含为主函数 jar 包与其余依赖 jar 包
  • cp 参数支持通配符匹配 jar 文件。使用 * 而不是使用 *.jar 来匹配 jar 包。
  • /foo/* 会加载 foo 下的 .jar 文件,但不会加 /foo/ 子目录下的 jar 文件
  • 加载的顺序是不固定的

例如,

javac -cp "F:\Program\java\elasticsearch\elasticsearch-6.8.4\lib\*;F:\Program\java\elasticsearch\elasticsearch-6.8.4\modules\x-pack-core\*" Netty4HttpRequestHandler.java javac -cp "F:\Program\java\elasticsearch\elasticsearch-6.8.4\lib\*;F:\Program\java\elasticsearch\elasticsearch-6.8.4\modules\x-pack-core\*;guava-20.0.jar" Netty4HttpRequestHandler.java javac -cp "F:\Program\java\elasticsearch\elasticsearch-6.8.4-2\lib\*;F:\Program\java\elasticsearch\elasticsearch-6.8.4-2\modules\x-pack-core\*" Netty4HttpRequestHandler.java 

使用以上命令编译出来一个以上以Netty4HttpRequestHandler开头的class文件。


5.新旧替换

想使用 jar 命令,就需要先安装 jdk-devel 包

解压原有 jar 包

jar -xf file.jar 

解压原有 jar 包到指定目录

unzip file.jar -d dir/- 

将制定的目录文件压缩成新 jar 包

jar cfm elasticsearch-6.8.4.jar .../MANIFEST.MF -C filesDir/ . 

6.运行测试

像我的反编译测试:

在这里插入图片描述











版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212833.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:09
下一篇 2026年3月18日 下午7:10


相关推荐

  • 数据结构(C语言版本)

    数据结构(C语言版本)数据结构 C 语言版本 第 1 章绪论 1 常用的数据结构类型 集合 线性 树形 图状 2 数据结构 逻辑结构 数据元素之间的关系 存储结构 数据结构在计算机中的表示 存储结构分为 顺序存储结构和链式存储结构 3 算法是对特定问题求解步骤的一种描述 算法具有如下特性 有穷性 确定性 可行性 输入 输出 4 算法的度量 时间复杂度 空间复杂度

    2026年3月19日
    2
  • Dedecms自定义表单后台列表展现方式更改

    Dedecms自定义表单后台列表展现方式更改

    2021年10月7日
    36
  • CentOS6 CentOS7 关闭防火墙命令

    CentOS6 CentOS7 关闭防火墙命令一 CentOS6 关闭防火墙的命令 临时关闭防火墙 serviceiptab 禁止开机启动防火墙 chkconfigipt nbsp 二 CentOS7 关闭防火墙的命令 nbsp nbsp CentOS7 与 nbsp CentOS6 在关闭防火墙的命令上 有了很大的区别 具体如下 1 nbsp CentOS7 使用 systemctl 来运行命令 而 Ce

    2026年3月17日
    2
  • jmeter菜鸟入门

    jmeter菜鸟入门jmeter 是我从事软件测试工作以来接触的第一个性能测试工具 也是耗费时间精力最多的一个工具 当然 学习 jmeter 过程中 由于知识储备不够 也顺带学习了很多其他相关的一些知识 一直有个想法 就是把 jmeter 写成一个完整的系列 包括元件构成 用法 不同组合能实现什么功能 以及利用 jmeter 来实现接口自动化 性能自动化测试等功能 当然 工具只是辅助测试提高效率的手段 博采众长 选择合适的解决问题的方案才是我们学习的目的 工具只是手段 仅此而已 这篇博客 将关于 jmeter 的一些使用技巧 遇到的错误整

    2026年3月18日
    2
  • Oracle-Oracle数据库备份与恢复

    Oracle-Oracle数据库备份与恢复Oracle数据库备份与恢复下面通过一些简单的例子来了解一下:Oracle数据库各种物理备份的方法。Oracle数据库各种物理恢复的方法利用RMAN工具进行数据库的备份与恢复。数据的导出与导入操作。(1)关闭BOOKSALES数据库,进行一次完全冷备份。selectfile_namefromdba_data_files;selectmemberfromv…

    2022年5月14日
    44
  • Python安装管理 Pycharm安装使用 pip使用[通俗易懂]

    Python安装管理 Pycharm安装使用 pip使用[通俗易懂]一、Python环境管理(mac系统)1、安装:  下载python安装包:https://www.python.org/  Python安装文档(windwos系统):https://testing-studio.com/t/topic/57/42、查看安装结果终端中输入python(对于Mac和Linux系统会本身自带一个较低的Python版本)  mac系统的安装Python的默认路径是:/usr/local/bin/python3.8  设置软链接ln-f/usr/

    2022年8月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号