你需要的Java jar包反编译工具来了

简介: 在我们进行java开发过程中,有时候需要看一下某个jar包是否确定已经是我们更新过的代码,那么此时,就需要使用反编译工具看一下jar包中对应的java源码。下文介绍一个高效率的jar包源码查看工具:jd-gui

jd-gui下载与编译

jd-gui源码可直接从github下载并进行编译。

github地址:git clone https://github.com/java-decompiler/jd-gui.git

git clone https://github.com/java-decompiler/jd-gui.git
cd jd-gui
./gradlew build

编译完成之后,即可得到以下文件:

root@hadoop[/root/xzc/jd-gui]# ll build/distributions/
总用量 8456
-rw-r--r-- 1 root root     608 8月  13 16:39 jd-gui-1.6.6.changes
-rw-r--r-- 1 root root 1336882 8月  13 16:39 jd-gui-1.6.6.deb
-rw-r--r-- 1 root root 1338425 8月  13 16:39 jd-gui-1.6.6.rpm
-rw-r--r-- 1 root root 1597440 8月  13 16:39 jd-gui-osx-1.6.6.tar
-rw-r--r-- 1 root root 1348906 8月  13 16:39 jd-gui-osx-1.6.6.zip
-rw-r--r-- 1 root root 1658880 8月  13 16:39 jd-gui-windows-1.6.6.tar
-rw-r--r-- 1 root root 1365507 8月  13 16:39 jd-gui-windows-1.6.6.zip

root@hadoop[/root/xzc/jd-gui]# ll build/libs/
总用量 4612
-rw-r--r-- 1 root root 3238467 8月  13 16:39 jd-gui-1.6.6.jar
-rw-r--r-- 1 root root 1480126 8月  13 16:39 jd-gui-1.6.6-min.jar

对应不同平台,使用build/distributions文件中的不同文件即可。

如果你不想编译的话,可以从以下地址直接下载:http://home.lrting.top:5000/sharing/QgU9eiPeT

该文件中包含build/distributions中的所有文件。

jd-gui使用

这边以windows平台的为例。

1 浏览器打开http://home.lrting.top:5000/sharing/QgU9eiPeT链接下载jd-gui.zip

解压得到:

选择jd-gui-windows-1.6.6.zip压缩文件,再次进行解压,得到:

双击jd-gui.exe,得到该工具首页:

点击File,打开待反编译的jar包:

点击左上角路径即可看到.class文件及其对应的java源码:


了解更多

相关文章
|
16天前
|
安全 Java 调度
解锁Java并发编程高阶技能:深入剖析无锁CAS机制、揭秘魔法类Unsafe、精通原子包Atomic,打造高效并发应用
【8月更文挑战第4天】在Java并发编程中,无锁编程以高性能和低延迟应对高并发挑战。核心在于无锁CAS(Compare-And-Swap)机制,它基于硬件支持,确保原子性更新;Unsafe类提供底层内存操作,实现CAS;原子包java.util.concurrent.atomic封装了CAS操作,简化并发编程。通过`AtomicInteger`示例,展现了线程安全的自增操作,突显了这些技术在构建高效并发程序中的关键作用。
42 1
|
11天前
|
Java
Java 基础语法-面试题(54-63道)(数组+类+包)
Java 基础语法-面试题(54-63道)(数组+类+包)
29 16
|
1天前
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
5 1
|
6天前
|
Java
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter 增样将jar包导入
文章记录了解决Java项目中遇到的`java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter`异常的方法,即通过在项目的`WEB-INF`文件夹下创建与`classes`平级的`lib`文件夹并添加所需的jar包来解决。
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter 增样将jar包导入
|
13天前
|
并行计算 Java API
Java中的Lambda表达式:简化代码的现代工具
在Java 8中引入的Lambda表达式,为函数式编程范式铺平了道路,提供了一种更简洁、更灵活的编写匿名方法的方式。本文将深入探讨Lambda表达式如何优化代码结构,提高开发效率,并通过具体示例展示其在实际应用中的魔力。
25 3
|
21天前
|
安全 Oracle Java
(四)深入理解Java并发编程之无锁CAS机制、魔法类Unsafe、原子包Atomic
其实在我们上一篇文章阐述Java并发编程中synchronized关键字原理的时候我们曾多次谈到过CAS这个概念,那么它究竟是什么?
|
6天前
|
Java Linux Nacos
Java -jar 运行 报 MalformedInputException: Input length = 1
Java -jar 运行 报 MalformedInputException: Input length = 1
7 0
|
8天前
|
Java Shell
Java Sprintboot jar 项目启动、停止脚本
Java Sprintboot jar 项目启动、停止脚本
16 0
|
8天前
|
监控 Java
JAVA性能优化- IntelliJ插件:java内存分析工具(JProfiler)
JAVA性能优化- IntelliJ插件:java内存分析工具(JProfiler)
18 0
|
8天前
|
Java Maven Windows
java -jar 启动 boot 程序 no main manifest attribute, in .\vipsoft-model-web-0.0.1-SNAPSHOT.jar
java -jar 启动 boot 程序 no main manifest attribute, in .\vipsoft-model-web-0.0.1-SNAPSHOT.jar
29 0