关注微信公众号:CodingTechWork,一起学习进步。

引言

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

实践

idea反编译插件

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

命令行进行反编译

查找插件路径


  找到IDEA安装路径后,我们就可以找到插件的安装路径:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-decompiler.jar

反编译

  在jar包同目录下创建一个目录,如decompiler_test文件夹。

  然后,使用git-bash命令行执行以下命令:

java -cp "C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true demo-0.0.1-SNAPSHOT.jar decompiler_test

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

$ java -cp "C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-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包里面显示的即为java文件:

总结

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

IDEA—使用插件反编译jar包相关推荐

  1. 使用IDEA插件反编译jar包文件

    1. 简介 查看日志报错行数时,发现现有代码又和线上的代码不一致,这个时候我们就需要反编译,本文介绍一下如何通过我们神奇的Idea软件进行反编译jar包. 使用到IDEA一个重要的插件:java-de ...

  2. Java反编译Jar包和Android APK(类似.NET Reflector)

    JD-GUI 这个JD-GUI可以反编译jar包,用法就是打开jar包直接浏览. JD-Eclipse JD-Eclipse是个Eclipse插件,安装方法是打开Eclipse,菜单 Help – & ...

  3. [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件)

    [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件) 文章分类:Java编程 该软件无需安装,界面清爽. 转自:http://www.devdoc.org/index.php/a ...

  4. idea反编译jar包

    idea提供了一键jar反编译插件 decompiler 通过[Settings]-->[Plugins] 搜索此插件下载 下载完成之后在你idea的安装目录找到此插件并进入目录 在jar包同目 ...

  5. 如何修改可运行Jar包,如何反编译Jar包

    将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All  ...

  6. fernflower反编译jar包用法

    1.用jd-gui反编译,save source后会生成非源码的注释代码. 2.Android studio跳转源码可以看到,class文件是用fernflower反编译的源码,然后我们去GitHub ...

  7. Java源码混淆,jar包加密,禁止反编译jar包

  8. Android聚合SDK母包反编译出包教程

    文章目录 [前言] 一.SDK预处理 1.SDK资源合并 1.1.合并res目录下的资源 1.2.合并libs目录 1.3.合并assets目录 1.4.合并AndroidManifest.xml 1 ...

  9. android.mk 编译jar包,Androidmk 使用详解

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点:一.Android.mk 简介二.Android.mk 的基本格式三.Android.mk 深入学习一四. ...

最新文章

  1. js经典试题之ES6
  2. 剑指offer六十一之序列化二叉树(待补充)
  3. 【CVPR 2018】Learning Rich Features for Image Manipulation Detection(图像篡改检测)
  4. SAP Marketing Cloud功能简述(一)Contacts和Profiles
  5. linux 安装nfs 客户端,在CentOS 7上安装NFS服务器和客户端
  6. 公众号第三方平台开发 - 教程五 代公众号发起网页授权源码
  7. tcpdf最新版 6.2版
  8. SpringBoot高级篇JdbcTemplate之数据查询上篇
  9. IDEA查看Java源码技巧
  10. 基于协同过滤算法和内容推荐算法实现电影推荐系统
  11. Theano框架学习
  12. Nuvoton M0518 之 看门狗的使用Demo
  13. 高可用pxc+rocketmq+es+redis+minio+keepalive+haproxy 实操
  14. Java体系知识之ElementUI
  15. Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBean
  16. 前馈神经网络(FNN)
  17. 防御100gDDoS需要多少钱
  18. void test();
  19. Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 15
  20. mysql定时任务(Navicat)

热门文章

  1. linux内核那些事之mempolicy(1)
  2. 如何在驱动代码中中/dev目录内自动创建
  3. Python map() ==>根据提供的函数对指定序列做映射
  4. Linux的cron任务的自启动判断、及启动、关闭 - Xshell命令篇
  5. axios跨域请求的qs用法 - qs安装篇
  6. 如何ping通服务器的公网IP?
  7. phpcmsV9子栏目调用其父栏目名称、URL、catid等信息 - 方法总结
  8. wordpress仿uehtml设计作品分享主题模板
  9. 随机二次元新浪图床api源码
  10. 第三只眼使用局域网版本还是网络版好_iOS13.4测试版使用3天后,发现3个优化,建议升级!...