You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GluonFX Gradle插件生成原生可执行文件时遇ClassNotFoundException

解决GluonFX原生打包ClassNotFoundException问题

针对非模块化JavaFX项目使用GluonFX Gradle插件打包时出现的java.lang.ClassNotFoundException: test.demo.HelloApplication异常,可按以下步骤排查修复:

1. 明确配置主类

确保Gradle的application插件和gluonfx插件都正确指定主类(若Launcher是实际入口类,替换为test.demo.Launcher):

plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.13'
    id 'com.gluonhq.gluonfx-gradle-plugin' version '2.1.1'
}

application {
    mainClass.set("test.demo.HelloApplication")
}

gluonfx {
    mainClass.set("test.demo.HelloApplication")
    // 非模块化项目需添加此配置,确保插件识别完整类路径
    runtimeArgs = ["--class-path", sourceSets.main.runtimeClasspath.asPath]
}

2. 强制纳入项目类到原生镜像

若主类配置后仍报错,显式告知GluonFX将项目编译类纳入原生镜像构建范围,在gluonfx块中添加:

gluonfx {
    // ... 其他已有配置
    nativeImage {
        args.add("--include-classes=test.demo.*")
    }
}

3. 验证类路径完整性

执行gradlew gluonfxRun测试原生运行,若仍报错,检查项目编译类是否在build/classes/java/main目录下,可通过以下命令查看完整运行类路径:

./gradlew printRuntimeClasspath

确认输出包含build/classes/java/main目录和所有依赖Jar包。

4. 清理缓存后重建

GluonFX的原生镜像缓存可能导致异常,执行以下命令清理后重新构建:

./gradlew clean gluonfxBuild nativeRun

内容的提问来源于stack exchange,提问作者Stefan Rainer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:12:05