说明

想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译。

IDEA 插件

可以使用 IDEA 中的 "Java Bytecode Decompiler",该插件一般都内置了,可以直接使用。找到该插件的位置。

  • Java Bytecode Decompiler 位置:D:\DevTools\JetBrains\IntelliJ IDEA 2021.1\plugins\java-decompiler\lib\java-decompiler.jar

  • 要反编译的jar包位置:F:\javadecom\helloworld.jar

打开控制台,进入到要反编译的 jar 包的目录中,反编译命令:

java -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom/helloworld.jar data

说明

  • org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler:是插件的启动类。

  • data:是在要反编译的 jar 包路径下的一个文件夹,需要提前创建好,反编译后的结果会放在该文件夹中。

执行命令,此时出现一个错误,如下图所示:

错误详细信息:

F:\javadecom>java -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom/helloworld.jar dataError: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.UnsupportedClassVersionError: org/jetbrains/java/decompiler/main/decompiler/ConsoleDecompiler has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(Unknown Source)at java.security.SecureClassLoader.defineClass(Unknown Source)at java.net.URLClassLoader.defineClass(Unknown Source)at java.net.URLClassLoader.access$100(Unknown Source)at java.net.URLClassLoader$1.run(Unknown Source)at java.net.URLClassLoader$1.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

意思是 JDK11 编译的代码,无法使用 JDK8 反编译。

此时需要下载一个 JDK11,下载好后,可以指定使用 JDK11 进行反编译。

  • JDK11 位置:D:\DevTools\Java\jdk-11.0.12\bin\java.exe

指定使用 JDK11 反编译命令:

D:/DevTools/Java/jdk-11.0.12/bin/java.exe -cp "D:/DevTools/JetBrains/IntelliJ IDEA 2021.1/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true F:/javadecom/helloworld.jar data

反编译完成后,会在 data 目录中生成 jar 反编译的文件。

将该文件解压出来,就是反编译的代码。

jar文件 反编译(IDEA环境)相关推荐

  1. Android APK+Dex文件反编译及回编译工具(APKDB)v.1.9.2 正式版

    http://idoog.me/?p=1913 [Android APK+Dex文件反编译及回编译工具 (APKDB)v.1.9.2 正式版] <APK+Dex文件反编译及回编译工具> 简 ...

  2. java jar反编译后保存_java根据jar包反编译后修改再打包回jar的做法

    1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...

  3. 对Android APK文件反编译查看其源码

    概述 作为android的开发者,相信你会有那么一刻,比如,对于手机中某一款App,有一项功能或者效果你蛮喜欢的,想学习一下它具体是怎么实现的.追求高一点的话,我想深究它这个App的项目架构,本着一探 ...

  4. Android APK+Dex文件反编译及回编译工具

    本帖最后由 zhu891108 于 2012-8-3 11:00 编辑 大家好! 相信很多人玩智能手机,无论是塞班,安卓等等,不只是看重各种软件的功能,而更多的是看重系统的可定制性,可以自己动手DIY ...

  5. .so文件反编译_o泡果奶软件在哪下载 o泡果奶一份礼物魔性文件下载

    o泡果奶病毒事件是怎么回事?最近很多高校学生都有被这个"O泡果奶"事情困扰着,安装之后会自动播放出关于"我要哦泡"的声音.之前也有类似的事情发生.那么大家知道o ...

  6. Jar包反编译后修改源码再编译

    Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...

  7. java的class文件反编译工具jad的应用

    java的class文件反编译工具jad的应用 JAD用法具体用法: http://www.kpdus.com/jad.html  官方最新版本,支持jdk1.6 Java下的一个简单易用的反编译工具 ...

  8. Java class 文件反编译工具JD-GUI下载安装使用教程(好用)

    多少个日日夜夜上线系统.都会有明明我改成了最新代码咋没变呢这咋整,看看反编译后的文件吧.每次看完都哦的 豁然开朗. 简介: JD-GUI是java class反编译软件上线的时候很有用.开发这么多年找 ...

  9. Android APK+Dex文件反编译及回编译工具 v.1.8.0 测试版

    可显示APK文件自身图标 _______________________________________________________________________________________ ...

最新文章

  1. 表表达式,Substring, CharIndex, 多行数据变同一行的用法
  2. Oracle 赋权和回收权限的生效时间
  3. Linux下启 停 oracle 以及em控制台
  4. 剑指Offer:包含main函数的栈(借助辅助栈)
  5. mysql8只从配置_mysql8的配置优化
  6. 第七章-NoSQL数据库
  7. WGAN-div:默默无闻的WGAN填坑者 | 附开源代码
  8. android import找不到文件夹,android 音乐播放器找不到源文件
  9. D3DXIntersectTri 求三角形与射线相交
  10. dnSpy反编译C#编译以后dll文件并调试
  11. h264js解码直播解码显示
  12. 笔记十三:python之类的继承实例(猜诗歌)
  13. 如何压缩word文档的大小?
  14. Pycharm新建项目,new environment 和 existing interpreter的区别
  15. Python爬取堆糖帅哥照片
  16. 【AutoHotkey】笔记本键盘没有Home键和End键的解决方案
  17. 静态网站全站搜索功能
  18. 虚拟机内存管理之内存分配器
  19. 【ESP 保姆级教程】疯狂Node.js服务器篇 ——案例:ESP8266 + MQ3酒精传感器 + NodeJs本地服务 + 文件存储数据
  20. android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法

热门文章

  1. 想十年后混得好,别选这3种贬值型工作,结局越来越差,追悔莫及
  2. Hadoop平台搭建与数据分析实验报告
  3. 【基于Web的网上零食销售系统——开题报告 分享(仅供参考呀)】
  4. Unity 3D 资源导入 监听导入事件
  5. Java异常使用的一点心得
  6. 十四种锁作用及其使用
  7. Matlab画图函数
  8. Proposal Thesis 模版和资源
  9. idea快捷键大全(常用的都有)
  10. Fluent的计算不收敛问题解决