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

Gradle构建JavaFX项目遇javafx.collections包不存在错误求助

解决Gradle构建JavaFX项目时javafx.collections包不存在的问题

核心原因

Corretto 17属于OpenJDK系列,从Java 11开始JavaFX不再作为JDK内置组件,必须通过依赖管理工具单独引入。

具体解决步骤

1. 配置Gradle的JavaFX插件

在项目根目录的build.gradle(Groovy DSL)或build.gradle.kts(Kotlin DSL)中添加JavaFX插件:
Groovy DSL示例:

plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.1.0' // 使用最新稳定版本即可
}

Kotlin DSL示例:

plugins {
    application
    id("org.openjfx.javafxplugin") version "0.1.0"
}

2. 指定JavaFX模块和版本

javafx.collections属于javafx.base模块,根据项目需求添加所需模块,同时指定与Corretto 17兼容的JavaFX版本(推荐17或21 LTS):
Groovy DSL示例:

javafx {
    version = '21'
    modules = ['javafx.base', 'javafx.controls', 'javafx.fxml'] // 按需增减模块
}

Kotlin DSL示例:

javafx {
    version = "21"
    modules = listOf("javafx.base", "javafx.controls", "javafx.fxml")
}

3. 指定主类(生成可执行Jar必需)

配置项目的主类全限定名:
Groovy DSL示例:

application {
    mainClass = 'com.yourpackage.YourMainClass' // 替换为实际主类路径
}

Kotlin DSL示例:

application {
    mainClass.set("com.yourpackage.YourMainClass")
}

4. 重新构建项目

执行Gradle构建命令:
Linux/macOS环境:

./gradlew clean build

Windows环境:

gradlew clean build

额外注意点

  • 若项目是模块化结构(存在module-info.java),需在模块声明中添加JavaFX依赖:
module your.module.name {
    requires javafx.base;
    requires javafx.controls;
    // 按需添加其他模块依赖
    exports com.yourpackage to javafx.graphics; // 若需对外暴露包则添加
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:22:37