zoukankan      html  css  js  c++  java
  • 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插件。

  • 相关阅读:
    C#+API实现指定窗体激活
    DEVC++学习之(一)
    javascript 实现原生下载的各种情况
    IssueVision 之WebService安全篇
    Add relationship to BS sample
    ExpandRelationWithCtxt 与 GetRelatedObjects 的区别
    C#调用javascript
    解禁网页限制
    Unix cc options vs gcc options
    IssueVision 之模式篇
  • 原文地址:https://www.cnblogs.com/Andya/p/13714328.html
Copyright © 2011-2022 走看看