【笔记17】使用 jad 工具把 java 的 class 文件转换为 java 文件;使用 luyten 把 java 的 jar 包转换为 java文件

简介: 📃 我的代码被存放在公司的电脑上📃 疫情原因使得我只能在家办公📃 而公司已经被隔离了😂 (怕公司的电脑感染新冠病毒)📃 我无法在公司代码的基础上继续编写代码📃 我有两种选择:① 重新编写代码;② 跑路📃 但是我选择了第三个选项:把 Java 项目打包后的 jar 文件转换为打包之前的 java 文件📃 在这里我推荐两款工具,这两款工具都可以把 class 文件转换为 java 文件🌼 ① jad 工具:可把 class 文件转换为 java 文件 【本文章的前四节是介绍 jad 工具的使用】🌼 ② Luyten 工具:可把 jar 包转换为 java 文件

零、前言

📃 我的代码被存放在公司的电脑上
📃 疫情原因使得我只能在家办公
📃 而公司已经被隔离了😂 (怕公司的电脑感染新冠病毒)
📃 我无法在公司代码的基础上继续编写代码
📃 我有两种选择:① 重新编写代码;② 跑路
📃 但是我选择了第三个选项:把 Java 项目打包后的 jar 文件转换为打包之前的 java 文件
📃 在这里我推荐两款工具,这两款工具都可以把 class 文件转换为 java 文件

🌼 ① jad 工具:可把 class 文件转换为 java 文件 【本文章的前四节是介绍 jad 工具的使用】
🌼 ② Luyten 工具:可把 jar 包转换为 java 文件 【本文章的第四节之后的是介绍 Luyten 工具的使用】

一起来感受这两个工具的强大之处吧!😀

一、下载反编译工具【jad】

项目官网 http://java-decompiler.github.io/

通过下面的网址下载反编译工具:
下载网址 https://varaneckas.com/jad/
在这里插入图片描述

---
解压下载成功的压缩文件
在这里插入图片描述


解压后如下图所示;
在这里插入图片描述

二、反编译的准备工作【jad】

🎄 把打包后的 classes 文件夹和 jad.exe 放在同一路径下
在这里插入图片描述


🎄 创建 decodeJava 文件夹,用于存放反编译后的 java 文件
在这里插入图片描述

三、进入 dos 窗口【jad】

按照下图操作进入 jad.exe 文件所在的 dos 命令窗口:
在这里插入图片描述


上图操作后应该出现下图所示界面:
在这里插入图片描述

四、输入命令,生成 java 文件【jad】

在上图界面输入下面的命令:

jad -o -r -s java -d decodeJava classes/**/*.class
📖 decodeJava: 【.class】文件反编译后的【java】文件存放的文件夹
📖 classes/*/.class: classes 文件夹下的所有【.class】文件都进行反编译(包括子文件夹下的【.class】文件)

执行命令截图:
在这里插入图片描述


生成的 java 文件截图;
在这里插入图片描述

五、下载和介绍 Luyten 【Luyten】

我把它放在我的百度网盘里面,大家用百度网盘下载即可(大家点个赞支持哈吧!)

链接:https://pan.baidu.com/s/1YJJWNfASvs_gcUcx1nY3Ug 
提取码:8kcz

下载解压后图片如下;
在这里插入图片描述


进入命令行窗口:
在这里插入图片描述


执行下面的命令

java -jar luyten-0.5.4.jar

执行完上面的命令后会出现下面的界面:
在这里插入图片描述

六、使用 Luyten 反编译 jar 包【Luyten】

选择要反编译的 jar 文件:
在这里插入图片描述


选择 jar 文件之后:
在这里插入图片描述


生成 & 保存反编译后的 java 文件:
在这里插入图片描述

在这里插入图片描述


看结果:
在这里插入图片描述

在这里插入图片描述

七、中文乱码的情况【Luyten】

需进行下面的配置,反编译后的中文才能正常显示。否则,是 Unicode 编码
在这里插入图片描述

八、结束语

☘️ 这个工具真的太好用了, 感谢这个工具的开发者
☘️ 创作不易,请给我点个赞吧!
相关文章
|
11天前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
102 1
|
3月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
3月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
223 0
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
221 14
|
Java Linux Python
CheerpJ转换JAVA使用最简教程
CheerpJ转换JAVA使用最简教程
508 0
CheerpJ转换JAVA使用最简教程
|
11天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
56 1
|
11天前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
49 1
|
1月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
77 0
|
1月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
123 16

热门文章

最新文章