GluonFX Gradle插件NativeRunAgentTask设置无效Java可执行路径问题
GluonFX Gradle插件nativeRunAgent任务失败:找不到Java可执行文件
问题描述
执行GluonFX Gradle插件的nativeRunAgent任务时触发报错:
RunAgent failure: org.gradle.api.InvalidUserDataException: The configured executable does not exist (<我的GraalVM JDK安装路径>\bin\java)
通过调试发现:
- Windows系统环境下,本地其他JDK的Java可执行文件路径均以
\bin\java.exe结尾 com.gluonhq.gradle.tasks.NativeRunAgentTask.action()方法中设置的可执行文件路径仅为\bin\java,对应代码行:
// set java_home execTask.executable(Path.of(graalVMHome.toString(), "bin", "java").toString());
由于该路径未指向实际存在的java.exe文件,导致后续抛出异常。
问题分析与解答
这是GluonFX插件针对Windows系统的bug,原因如下:
- Linux/macOS系统中,可执行文件无需
.exe后缀,直接写java即可正常调用; - 但Windows系统中,Java可执行文件的实际名称是
java.exe,插件代码硬编码了不带后缀的路径,导致无法找到对应文件。
临时解决方法
- 创建硬链接:在GraalVM的
bin目录下,以管理员身份执行命令,给java.exe创建名为java的硬链接:
mklink <GraalVM安装路径>\bin\java <GraalVM安装路径>\bin\java.exe
- 修改插件代码:若具备编译插件的能力,可修改
NativeRunAgentTask类中设置executable的代码,针对Windows系统追加.exe后缀:
String javaExecutable = System.getProperty("os.name").toLowerCase().contains("win") ? "java.exe" : "java"; execTask.executable(Path.of(graalVMHome.toString(), "bin", javaExecutable).toString());
- 等待官方修复:可在GluonFX插件的官方仓库提交issue,等待开发者修复该平台兼容性问题。
内容的提问来源于stack exchange,提问作者Brian B
相关产品推荐
相关产品推荐

