• IDEA—使用插件反编译jar包


    技术公众号:后端技术解忧铺
    关注微信公众号:CodingTechWork,一起学习进步。

    引言

      在产品上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况,只能去看日志的报错行数是哪里,否则,无从下手。
      查看日志报错行数时,发现现有代码又和线上的代码不一致,又阻塞了,怎么办?这个时候我们就需要反编译,反编译有很多工具可以使用,比如JD-GUI。本文接下来就介绍一下如何通过我们神奇的Idea软件进行反编译jar包。

    实践

    idea反编译插件

      首先,我们要保证IDEA中有反编译插件。通过【Settings】——>【Plugins】输入Decompiler进行查看,看是否有Java Bytecode Decompiler这个插件。
    idea反编译插件

    命令行进行反编译

    查找插件路径

    查找idea安装路径
      找到IDEA安装路径后,我们就可以找到插件的安装路径:C:Program FilesJetBrainsIntelliJ IDEA 2018.1.2pluginsjava-decompilerlibjava-decompiler.jar
    反编译插件安装路径

    反编译

      在jar包同目录下创建一个目录,如decompiler_test文件夹。
    创建文件夹存放反编译出来的jar包
      然后,使用git-bash命令行执行以下命令:

    java -cp "C:Program FilesJetBrainsIntelliJ IDEA 2018.1.2pluginsjava-decompilerlibjava-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true demo-0.0.1-SNAPSHOT.jar decompiler_test
    

    命令行执行反编译命令

    注意
      如果不先创建目录,就执行的话,可能会报错。

    $ java -cp "C:Program FilesJetBrainsIntelliJ IDEA 2018.1.2pluginsjava-decompilerlibjava-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true d                              emo-0.0.1-SNAPSHOT.jar decompiler_test
    error: destination 'decompiler_test' is not a directory
    

    查看反编译文件

    反编译出来的jar包
      因为以上命令执行后,反编译出来的也jar包。需要我们进行解压(通过解压工具):
    解压反编译的jar包
      解压后的jar包里面显示的即为java文件:
    java文件

    总结

      至此,就可有通过IDEA中的插件对jar包进行反编译。整个流程主要依赖于IDEA中的Java Bytecode Decompiler插件。

  • 相关阅读:
    读书笔记之: 操作系统概念(第6版)第三部分 存储管理2(文件系统接口, 文件系统实现)
    Padding 属性中参数的定义
    谷歌“抄袭门”:可能祸及价值660亿品牌形象
    最常用的20个ASP代码片段 上
    可定制的数据库备份和恢复程序
    最常用的20个ASP代码片段 下
    Google Ajax Search API的使用
    Ajax 中跨域问题的结决办法 [转]
    JAVA面试题汇总 一
    WebService的描述与注册、发布
  • 原文地址:https://www.cnblogs.com/Andya/p/13714328.html
Copyright © 2020-2023  润新知