JD-GUI和JAD对War包和Jar包进行反编译教学

简介: JD-GUI和JAD是两个用于反编译Java字节码的工具。代码调试:当你需要调试Java代码时,可以使用JD-GUI将Java类反编译为可读的源代码,以便进行调试和分析。代码分析:如果你需要对Java类进行深入的分析,例如了解代码结构、方法调用关系等,可以使用JD-GUI来反编译Java类,并查看反编译后的源代码。代码重构:如果你需要修改现有的Java类,可以使用JD-GUI将Java类反编译为可读的源代码,然后进行修改。注意,反编译后的源代码可能不完全与原始源代码相同,因此在进行修改时需要谨慎。

其他系列文章导航

Java基础合集

设计模式合集

多线程合集

分布式合集

ES合集


文章目录

其他系列文章导航

文章目录

前言

一、JD-GUI下载及对Jar包的反编译

1.1选择自己的操作系统进行下载编辑

1.2下载完后进行解压双击exe文件打开

1.3点击File菜单栏的Open File打开需要的jar包

1.4然后用快捷键ctrl+alt+s将反编译的java文件保存

二、JD-GUI对War包的反编译

三、JAD下载及对Jar包和War包的反编译

3.1选择自己的操作系统进行下载

3.2下载完后进行解压,将解压后的exe文件放到要反编译的文件夹同层

3.3然后在这个文件夹中启动cmd

3.4输入一行命令一键搞定

四、总结


前言

JD-GUI和JAD是两个用于反编译Java字节码的工具。它们通常在以下情况下使用:

    1. 代码调试:当你需要调试Java代码时,可以使用JD-GUI将Java类反编译为可读的源代码,以便进行调试和分析。
    2. 代码分析:如果你需要对Java类进行深入的分析,例如了解代码结构、方法调用关系等,可以使用JD-GUI来反编译Java类,并查看反编译后的源代码。
    3. 代码重构:如果你需要修改现有的Java类,可以使用JD-GUI将Java类反编译为可读的源代码,然后进行修改。注意,反编译后的源代码可能不完全与原始源代码相同,因此在进行修改时需要谨慎。
    4. 辅助学习:如果你是一名Java初学者,可以通过JD-GUI和JAD反编译现有的Java类,了解Java类的结构和实现方式,从而加深对Java语言的理解。

    一、JD-GUI下载及对Jar包的反编译

    下载链接:Java Decompiler

    1.1选择自己的操作系统进行下载image.gif编辑

    1.2下载完后进行解压双击exe文件打开

    image.gif编辑

    1.3点击File菜单栏的Open File打开需要的jar包

    image.gif编辑

    1.4然后用快捷键ctrl+alt+s将反编译的java文件保存

    image.gif编辑


    二、JD-GUI对War包的反编译

    反编译步骤和反编译Jar包一样,唯一要注意的就是:

    将自己的war后缀改为.zip,然后解压出来,在WEB-INF多出了一个classes的文件,进去后可以看到是我们java文件的编译文件,都是.class文件。

    打开jd-gui工具,将.class文件拖拽进去。我们可以看到自动的将我们java项目原结构分离出来。我们只需要保存,编译后的java代码。然后拷入我们的项目就可以了。

    JD-GUI对要同时反编译多个class太不友好了!!!!!!!

    如果对于单个文件的情况,可以使用JDGUI来打开看一下,多个文件也可以,甚至一个jar包或者war包都可以,但只能在GUI里打开看看,对于想反编译成一个项目,直接使用源代码的朋友来讲,真的很不方便。

    所以接下来我要介绍JAD了!!!!极力推荐!!!!


    三、JAD下载及对Jar包和War包的反编译

    下载链接:JAD Java Decompiler Download Mirror (varaneckas.com)

    3.1选择自己的操作系统进行下载

    image.gif编辑

    3.2下载完后进行解压,将解压后的exe文件放到要反编译的文件夹同层

    image.gif编辑

    3.3然后在这个文件夹中启动cmd

    image.gif编辑

    3.4输入一行命令一键搞定

    jad -8 -o -r -sjava -d src classes/**/*.class

    image.gif

      • -8 指的是将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。
      • -o - 覆盖输出文件而不进行确认
      • -r - 恢复软件包目录结构
      • -s - 输出文件扩展名(默认:.jad)这里是 .java
      • -d - 输出文件的目录

      四、总结

      单个文件或少量文件推荐JD-GUI,它拥有可视化界面,更好操作。

      多个文件或整个项目建议使用JAD,比较高效,也支持中文反编译。

      目录
      相关文章
      |
      11天前
      |
      Java 应用服务中间件 Maven
      Maven的三种项目打包方式——pom,jar,war的区别
      Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
      30 3
      |
      4月前
      |
      Java
      [JarEditor]可直接修改jar包的IDEA插件
      ### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
      467 2
      [JarEditor]可直接修改jar包的IDEA插件
      |
      4月前
      |
      弹性计算 Java Serverless
      Serverless 应用引擎操作报错合集之上传自定义JAR包,启动时报错,是什么导致的
      Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
      |
      4月前
      |
      关系型数据库 Java 分布式数据库
      PolarDB产品使用问题之部署到服务器上的Java应用(以jar包形式运行)无法连接,如何解决
      PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
      |
      4月前
      |
      Java 应用服务中间件
      tomcat7 与 tomcat8 加载 jar包的顺序
      tomcat7 与 tomcat8 加载 jar包的顺序
      172 0
      |
      4月前
      |
      Java 应用服务中间件 API
      java 启动查看jar包加载顺序并设置classpath
      java 启动查看jar包加载顺序并设置classpath
      387 0
      |
      5月前
      |
      druid Java Maven
      杨校老师课堂之java_关于如何下载jar包的教程
      杨校老师课堂之java_关于如何下载jar包的教程
      119 0
      |
      4月前
      |
      监控 Ubuntu Java
      如何在Ubuntu上运行Jar包?
      【7月更文挑战第9天】
      253 0
      如何在Ubuntu上运行Jar包?
      |
      5月前
      |
      Java Maven 容器
      springBoot项目导入外部jar包
      springBoot项目导入外部jar包