首页 > 解决方案 > 错误:找不到模块:org.controlsfx.controls

问题描述

起初我是Java模块系统的初学者......我想将org.controlsfx.controls库作为模块连接到我的应用程序。我module-info.java在我的项目中创建了下一个:

module yummy {
    requires org.controlsfx.controls;
    requires javafx.controls;
    requires javafx.fxml;

    opens com.contedevel.yummy.gui to javafx.fxml;
    opens com.contedevel.yummy.control to javafx.fxml;
    exports com.contedevel.yummy;
}

并且build.gradle

plugins {
    id 'application'
    id "org.beryx.jlink" version "2.17.5"
}

group 'com.contedevel'
version '1.0-SNAPSHOT'

application {
    mainClassName = 'com.contedevel.yummy.App'
    applicationName = 'yummy'
    applicationDefaultJvmArgs =  [
            "--add-opens=javafx.base/com.sun.javafx.runtime=org.controlsfx.controls",
            "--add-opens=javafx.base/com.sun.javafx.collections=org.controlsfx.controls",
            "--add-opens=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls",
            "--add-opens=javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls",
            "--add-opens=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls",
            "--add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls",
            "--add-opens=javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls",
            "--add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls",
            "--add-opens=javafx.controls/javafx.scene.control.skin=org.controlsfx.controls"
    ]
}

jlink {
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    launcher {
        name = 'yummy'
    }
    jpackage {
        resourceDir = file("$buildDir/resources")
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation('org.controlsfx:controlsfx:11.0.1') {
        exclude group: 'org.openjfx'
    }
    compile 'org.webjars:font-awesome:5.13.0'
    testCompile 'junit:junit:4.12'
}

但是当我启动我的应用程序(./gradlew run)时,我收到了错误:

yummy/src/main/java/module-info.java:2: error: module not found: org.controlsfx.controls
    requires org.controlsfx.controls;

最有趣的是IntelliJ IDEAmodule-info.java.

如何org.controlsfx.controls作为模块连接?

PS我不需要连接OpenJFX模块,因为我使用带有内置OpenJFX的Liberica 14

标签: javagradlejava-modulecontrolsfx

解决方案


推荐阅读