在运行gluonfx:compile时出错,原因是 $JAVA_HOME与 $GRAALVM_HOME未定义

编程语言 2026-07-12
~/git/repo/fxProject$ sudo mvn gluonfx:compile   
[Sun Mar 08 00:00:42 EST 2026][INFO] We will now compile your code for x86_64-linux-linux. This may take some time.  
java.io.IOException: Error: $JAVA_HOME and $GRAALVM_HOME are undefined

我不明白在执行上面的命令时,为什么会出现这个错误信息。我相信这些变量已经正确定义,且文件系统中确实存在这两个目录。

"'mybashrc' Shell脚本"

#This shell script initialized necessary environment variables. 
export JAVA_HOME=/lib/jvm/java-1.17.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

export GRAALVM_HOME=/home/xxx/graalvm-svm-java17-linux-gluon-22.1.0.1-Final
export PATH=$GRAALVM_HOME:$PATH

运行Shell脚本

~/git/repo/fxProject$ source ~/mybashrc

检查环境变量

~/git/repo/fxProject$ echo $JAVA_HOME
/lib/jvm/java-1.17.0-openjdk-amd64

~/git/repo/fxProject$ echo $GRAALVM_HOME
/home/xxx/graalvm-svm-java17-linux-gluon-22.1.0.1-Final

POM文件中的相关行

Defining GRAALVM_HOME line in pom.xml does not seem to help:

pom.xml 中定义 GRAALVM_HOME 行似乎并无帮助:

<graalvmHome>/home/xxx/graalvm-java23-linux-amd64-gluon-23+25.1-dev</graalvmHome>  
<gluonfx.maven.plugin.version>1.0.27</gluonfx.maven.plugin.version>  
<javafx.version>25.0.2</javafx.version>

如果需要更多信息,请告诉我。

解决方案

The problem is:

问题在于:

The user xxx executes mybashrc to define the 2 environment variables

用户 xxx 执行mybashrc来定义这两个环境变量

While,

然而,

root executes sudo mvn gluonfx:compile which has no access to environment variables defined by xxx

root 执行 sudo mvn gluonfx:compile,它无法访问由 xxx 定义的环境变量

removing sudo executes mvn glunfx:compile as xxx

去掉 sudo,就以 xxx 的身份执行 mvn glunfx:compile

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章