java反编译工具 -「JD-GUI」

837 阅读2分钟

概要

分享一个java的反编译工具。

为什么想分享这个呢,有一天工作日的下午,开发过程中运行本地代码优点问题(可能是由于本地仓库某些文件损坏),于是想着先把未提交的代码提交上去之后重新从仓库拉取一份新的代码,于是就开干,先提交代码后把本地代码删掉了,然后重新取了一份代码 发现我开发的代码远程仓库并没有。唉?我明明push了呀?怎么没有呢?于是第一反应就想着怎么恢复回来,如果丢失了大半天的工作相当于就白费了,然后就开始尝试各种数据恢复工具(Disk Drill Enterprise、Aiseesoft Data Recovery、失易得....),发现并不能检索到我所删除的源代码问题 绝望!绝望!绝望!心想应该是恢复不回来了。突然想到测试环境有我发布的测试版本的jar文件,把jar文件反编译出来找的对应的文件然后拷贝出来不就可以了吗,于是就开始搜索java反编译工具,折腾了很久之后,最终选择了JD-GUI。

最后发现没有push到远程仓库的原因是由于操作权限不够,提交分支是受保护分支,后面申请了提升权限。

注:反编译出来的代码是不带注释的,我这里把代码拷贝出来后,自己重新写了注释,然后提交了代码

安装

下载地址:github.com/java-decomp…

下载后解压即可,运行JD-GUI image.png image.png image.png

问题解决方案

1、提示找不到java合适的版本

image.png 解决方案:

  • 查看java可执行命令路径 image.png
  • 编辑universalJavaApplicationStub.sh,将233行else后面的注释掉改为自己的java目录 image.png image.png
  • 重新运行JD-GUI image.png image.png

2、提示未安装jdk

image.png 解决方案:

  • 查询java安装目录 image.png
  • 编辑universalJavaApplicationStub.sh, image.png
    • 重新运行JD-GUI image.png image.png

3、打开闪退问题

  • 右键 JD-GUI.app 图标,选择 显示包内容 image.png
  • 进去,找到 info.plist 文件 image.png
  • 编辑它,把149行,这个 1.8+ ,改成1.8,保存,关闭 image.png
  • 重新运行JD-GUI image.png image.png