IDEA无法识别到环境变量

问题描述:新配置了一个环境变量GRAALVM_HOME,但是通过IDEA启动Gradle一直无法识别到这个环境变量。 Determining GraalVM installation failed with message: 'gu' at '.../jdk-21.0.3.jdk/Contents/

问题描述:新配置了一个环境变量GRAALVM_HOME,但是通过IDEA启动Gradle一直无法识别到这个环境变量。

Determining GraalVM installation failed with message: 'gu' at '.../jdk-21.0.3.jdk/Contents/Home/bin/gu' tool wasn't found. This probably means that JDK at isn't a GraalVM distribution.

接着,我尝试Debug Gradle的编译过程,我通过System.getenv尝试去获取这个环境变量,发现确实没这个环境变量。

gradle-debug-graalvm-env.png

接着我尝试通过修改IDEA的Gradle的运行配置,去手动添加环境变量:

GRAALVM_HOME=/Users/jianchaojia/Desktop/Code/jdk/graalvm-jdk-22.0.2+9.1/Contents/Home

gradle-debug-graalvm-env-gradle-runtime-setting.png

再次尝试进行nativeCompile编译,发现IDEA的Gradle AOT编译正常。

gradle-graalvm-compile-env-gradle-runtime-setting.png.png

为什么IDEA启动的Gradle没有GRAALVM_HOME环境变量?因为IDEA启动的进程会继承IDEA进程的环境变量,而IDEA会继承操作系统的环境变量,但是通过查看IDEA继承的环境变量发现,继承操作系统的环境变量时就缺少了GRAALVM_HOME。

idea-env.jpg

所以这是因为IDEA没有继承环境变量导致的,那么为什么没继承呢?因为JAVA进程在启动之后,环境变量就被缓存下来了,是不可变的,如果在IDEA运行中更改环境变量,那么对IDEA是不生效的,所以如果修改了环境变量,需要重启IDEA才能生效。

重启IDEA之后,重新查看环境变量生效。

idea-env-graalvm.png

Comment