在 Mac 上安装/运行 GrallVM 的问题

问题描述

我使用的是在防火墙后面运行的 MacOS Catalina 10.15.7 机器。

我开始评估 Micronaut 和 Quarkus 作为 Spring Boot 的替代品,其中一个主要原因是能够编译为原生映像。

为了能够做到这一点,我必须安装 GraalVM。我按照 GraalVM Community Edition 20.3.0 此处的说明下载了 graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz,将其解压缩到我选择的文件夹中,然后将 /Users/myId/work/dev/graalvm/graalvm-ce-java11-20.3.0/Contents/Home/ 导出为 GRAALVM_HOME 和在我的路径中添加了 GRALLVM_HOME\bin。

在此之后,我前往 https://code.quarkus.io/上传一个 Hello World Quarkus 项目以使用 gradle (6.8) 进行构建。

当我运行 gardle build 时,一切正常。 当我运行 gradle quarkusDev 时,应用程序正常启动,我可以到达 Hello World 终点。

但是,当我尝试使用 gradle build -Dquarkus.package.type=native 构建本机映像时,出现以下异常

java.lang.RuntimeException: Cannot find the `native-image` in the GRAALVM_HOME,JAVA_HOME and System PATH. Install it using `gu install native-image`

尝试运行 gu install native-image 会在我的屏幕上弹出一个窗口说

“graalvm-ce-java11-20.3.0” is damaged and can’t be opened. You should move it to the Bin.

当我尝试使用 gradle build -Dquarkus.package.type=uber-jar 或仅使用 gradle build 运行 jar 构建时,会弹出相同的错误窗口

我不认为我的 GraalVM 下载已损坏,因为解压后的文件看起来没问题,而且似乎具有正确的结构。

任何帮助或提示将不胜感激。提前致谢。

解决方法

在 MacOS catalina 中,您可以通过执行以下操作来解决此问题:

xattr -d com.apple.quarantine <PATH TO GRAALVM INSTALLATION>

这是一个已知问题。可在以下链接中找到更多信息:

https://github.com/oracle/graal/issues/1724

https://github.com/graalvm/homebrew-tap/issues/6