JD-GUI下载地址:http://java-decompiler.github.io
JD-GUI 是一款轻量级的 Java 反编译工具,对于一些没有源码的 Jar 包,直接拖进去就可以反编译源码,十分的方便。
在 MacOS 还是 Mojave 的时候,JD-GUI 使用一切正常。
当系统升级到 BigSur 和 Monterey 的时候,打开 JD-GUI 就会提示找不到 JDK 环境。(即使你的电脑已经存在 JDK 环境并且配置了环境变量,依然会提示找不到 JDK 环境)
大致错误提示如下:
ERROR launching ‘JD-GUI’
No suitable Java version found on your system!
This program requires Java 1.8+
Make sure you install the required Java version.
解决办法
起初,我第一感觉可能是新版的 MacOS 和老版本的 JD-GUI 不兼容导致的,然后在官网下载最新的 1.6.6 版本,安装后,依然报同样的错误信息。
这肯定不可能是我一个人遇到这个问题,于是我在官方仓库找到了这个问题 Update universalJavaApplicationStub to be able to launch on macOS Big Sur #336
我们需要替换 JD-GUI 程序文件里一个脚本文件,参考步骤如下:
先将下载下来的 jd-gui-osx-1.6.6.tar 解压,然后将 JD-GUI.app 文件拷贝到 Applications 目录下
右击 JD-GUI.app 点击显示包内容
将 Contents/MacOS/universalJavaApplicationStub.sh 文件的内容替换为 https://github.com/tofi86/universalJavaApplicationStub/blob/v3.2.0/src/universalJavaApplicationStub 中的内容,保存。
注意:确保本地已存在 Java 环境
此时,再次打开 JD-GUI.app,则可以正常运行了。