brew安装JD-GUI并解决启动问题
强制安装并跳过验证
brew install --cask jd-gui --no-quarantine
很好!现在问题很清楚了。JD-GUI 使用的是 universalJavaApplicationStub.sh 启动脚本,而不是直接的可执行文件。
解决方案
方案1:直接运行启动脚本
# 使用正确的 Java 8 环境运行
cd /Applications/JD-GUI.app/Contents/MacOS/
JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home" ./universalJavaApplicationStub.sh
方案2:修改启动脚本的环境变量
# 备份原脚本
sudo cp /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh.backup# 在脚本开头添加 JAVA_HOME 设置
sudo sed -i '' '1i\
#!/bin/bash\
export JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
' /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh
方案3:创建包装启动器(推荐)
# 创建包装脚本
cat > ~/jd-gui-launcher.sh << 'EOF'
#!/bin/zsh
export JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"
cd /Applications/JD-GUI.app/Contents/MacOS/
./universalJavaApplicationStub.sh
EOFchmod +x ~/jd-gui-launcher.sh# 运行包装器
~/jd-gui-launcher.sh
方案4:修改 Info.plist 的正确字段
# 检查当前的 Java 配置
plutil -p /Applications/JD-GUI.app/Contents/Info.plist | grep -i java# 可能需要设置不同的字段
sudo plutil -replace JVMRuntime -string "/Library/Java/JavaVirtualMachines/zulu-8.jdk" /Applications/JD-GUI.app/Contents/Info.plist# 或者
sudo plutil -replace JVMMainClassName -string "jd.gui.App" /Applications/JD-GUI.app/Contents/Info.plist
方案5:检查并修改 universalJavaApplicationStub 配置
# 查看启动脚本的配置
cat /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh | head -20# 查找 JAR 文件位置
find /Applications/JD-GUI.app -name "*.jar"# 直接运行 JAR 文件
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/java -jar /Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.6.6-min.jar
诊断步骤
请先执行以下命令来获取更多信息:
# 1. 查找 JAR 文件
find /Applications/JD-GUI.app -name "*.jar"# 2. 查看启动脚本的前几行
head -20 /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh# 3. 检查完整的 Info.plist Java 相关配置
plutil -p /Applications/JD-GUI.app/Contents/Info.plist | grep -A5 -B5 -i java
最可能有效的解决方案
先试试这个:
# 直接运行 JAR 文件(如果找到的话)
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/java -jar $(find /Applications/JD-GUI.app -name "*.jar" | head -1)
或者:
# 使用包装脚本
cat > ~/jd-gui-fixed.sh << 'EOF'
#!/bin/zsh
export JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
open /Applications/JD-GUI.app
EOFchmod +x ~/jd-gui-fixed.sh
~/jd-gui-fixed.sh
请先运行诊断命令,告诉我输出结果,这样我可以提供更精确的解决方案。
