IDEA—使用插件反编译jar包
关注微信公众号: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包相关推荐
- 使用IDEA插件反编译jar包文件
1. 简介 查看日志报错行数时,发现现有代码又和线上的代码不一致,这个时候我们就需要反编译,本文介绍一下如何通过我们神奇的Idea软件进行反编译jar包. 使用到IDEA一个重要的插件:java-de ...
- Java反编译Jar包和Android APK(类似.NET Reflector)
JD-GUI 这个JD-GUI可以反编译jar包,用法就是打开jar包直接浏览. JD-Eclipse JD-Eclipse是个Eclipse插件,安装方法是打开Eclipse,菜单 Help – & ...
- [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件)
[转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件) 文章分类:Java编程 该软件无需安装,界面清爽. 转自:http://www.devdoc.org/index.php/a ...
- idea反编译jar包
idea提供了一键jar反编译插件 decompiler 通过[Settings]-->[Plugins] 搜索此插件下载 下载完成之后在你idea的安装目录找到此插件并进入目录 在jar包同目 ...
- 如何修改可运行Jar包,如何反编译Jar包
将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All ...
- fernflower反编译jar包用法
1.用jd-gui反编译,save source后会生成非源码的注释代码. 2.Android studio跳转源码可以看到,class文件是用fernflower反编译的源码,然后我们去GitHub ...
- Java源码混淆,jar包加密,禁止反编译jar包
- Android聚合SDK母包反编译出包教程
文章目录 [前言] 一.SDK预处理 1.SDK资源合并 1.1.合并res目录下的资源 1.2.合并libs目录 1.3.合并assets目录 1.4.合并AndroidManifest.xml 1 ...
- android.mk 编译jar包,Androidmk 使用详解
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点:一.Android.mk 简介二.Android.mk 的基本格式三.Android.mk 深入学习一四. ...
最新文章
- js经典试题之ES6
- 剑指offer六十一之序列化二叉树(待补充)
- 【CVPR 2018】Learning Rich Features for Image Manipulation Detection(图像篡改检测)
- SAP Marketing Cloud功能简述(一)Contacts和Profiles
- linux 安装nfs 客户端,在CentOS 7上安装NFS服务器和客户端
- 公众号第三方平台开发 - 教程五 代公众号发起网页授权源码
- tcpdf最新版 6.2版
- SpringBoot高级篇JdbcTemplate之数据查询上篇
- IDEA查看Java源码技巧
- 基于协同过滤算法和内容推荐算法实现电影推荐系统
- Theano框架学习
- Nuvoton M0518 之 看门狗的使用Demo
- 高可用pxc+rocketmq+es+redis+minio+keepalive+haproxy 实操
- Java体系知识之ElementUI
- Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBean
- 前馈神经网络(FNN)
- 防御100gDDoS需要多少钱
- void test();
- Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 15
- mysql定时任务(Navicat)
热门文章
- linux内核那些事之mempolicy(1)
- 如何在驱动代码中中/dev目录内自动创建
- Python map() ==>根据提供的函数对指定序列做映射
- Linux的cron任务的自启动判断、及启动、关闭 - Xshell命令篇
- axios跨域请求的qs用法 - qs安装篇
- 如何ping通服务器的公网IP?
- phpcmsV9子栏目调用其父栏目名称、URL、catid等信息 - 方法总结
- wordpress仿uehtml设计作品分享主题模板
- 随机二次元新浪图床api源码
- 第三只眼使用局域网版本还是网络版好_iOS13.4测试版使用3天后,发现3个优化,建议升级!...