在运行gluonfx:compile时出错,原因是 $JAVA_HOME与 $GRAALVM_HOME未定义
~/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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。