在 macOS(尤其是 Sonoma 或更新版本)上使用 Homebrew 安裝 jadx 後,執行 jadx-gui 經常會遇到 _NSCarbonMenuCrashIfNeeded 錯誤導致程序崩潰。這是由於默認 JDK 與 macOS 菜單欄渲染機制的兼容性問題引起的。
本文提供一個終極解決方案:更換穩定版 JDK 並設置終端別名 (Alias)。
- 安裝穩定的 JDK 環境
Homebrew 默認的 OpenJDK 有時過新,建議安裝對 GUI 支持更穩定的 Azul Zulu JDK 21:
bash
brew install --cask zulu@21
- 修正啟動指令
經測試,指定 JAVA_HOME 環境變量可以完美解決菜單欄衝突導致的崩潰。測試指令如下:
bash
JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home jadx-gui
- 配置別名(Alias)實現秒速啟動
為了避免每次都輸入長指令,我們將其寫入 Zsh 配置文件中。
-
打開配置文件 :
bash
nano ~/.zshrc -
在文件末尾添加以下代碼 :
bash
# JADX GUI 快捷啟動 alias jadx='JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home jadx-gui' -
保存並生效 :
按下Ctrl + O(Enter) 保存,Ctrl + X退出。然後執行:bash
source ~/.zshrc -
使用結果
現在,您只需要在終端機輸入一個單詞,即可優雅地打開 JADX:
bash
jadx
💡 小結
- 工具推薦 :Android 逆向首選 JADX。
- 解決崩潰 :核心在於使用
zulu-21替代系統默認 Java。 - 提升效率 :透過
alias簡化重複勞動。
如果未來升級了 JDK 版本,只需回頭修改 ~/.zshrc 中的路徑即可。