You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级macOS至Big Sur后Grails应用无法运行如何解决?

解决macOS Big Sur下Grails应用找不到tools.jar的问题

这个问题太典型了——Big Sur之后系统默认的Java路径指向的是JRE(Java运行环境),而Grails编译Groovy代码需要的是**JDK(Java开发工具包)**里的tools.jar,JRE里根本没有这个文件,所以才会报这个错。我帮好几个朋友解决过这个问题,给你一步步来:

第一步:找到你的JDK安装路径

先打开终端,输入这条命令列出所有已安装的Java版本:

/usr/libexec/java_home -V

你会看到类似这样的输出(版本号可能不一样):

Matching Java Virtual Machines (2):
    1.8.0_301, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:	"Java SE 6"	/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

记下那个JDK的完整路径(比如上面的/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home),这才是我们需要的正确路径。

第二步:设置JAVA_HOME指向JDK

系统默认的JAVA_HOME指向的是错误的JRE路径,我们需要把它改成JDK的路径:

临时生效(仅当前终端会话)

直接在终端输入:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home

替换成你刚才记下的路径,然后再运行你的Grails命令试试,应该就能正常编译了。

永久生效(所有终端会话都生效)

Big Sur默认用的是zsh shell,如果你用的是bash,对应改配置文件就行:

  • zsh用户:编辑~/.zshrc文件,添加一行:
    export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
    
    这里的-v 1.8指定JDK版本,如果你装的是11,就改成-v 11。保存后,输入source ~/.zshrc让配置生效。
  • bash用户:编辑~/.bash_profile,同样添加上面那行,然后source ~/.bash_profile生效。

第三步:检查IDE配置(如果用IDE运行Grails)

如果你是在IntelliJ或其他IDE里运行Grails,还要确保IDE的JDK配置正确:

  • 打开IDE的「Project Structure」(快捷键:Cmd+;)
  • 在「SDKs」里添加你安装的JDK,而不是系统默认的JRE
  • 把项目的Project SDK和Module SDK都设置成这个JDK

为什么会出现这个问题?

Big Sur之后,苹果调整了Java的默认路径,系统默认的java命令指向的是/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home——这是JRE的路径,只包含运行Java程序的必要文件,没有开发用的tools.jar。而Grails在编译Groovy代码时必须依赖这个文件,所以必须让JAVA_HOME指向完整的JDK安装目录。

内容的提问来源于stack exchange,提问作者Chris Okebata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 16:57:51