Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle JavaFX模块不会导出到未命名模块_Gradle_Kotlin_Javafx_Tornadofx - Fatal编程技术网

Gradle JavaFX模块不会导出到未命名模块

Gradle JavaFX模块不会导出到未命名模块,gradle,kotlin,javafx,tornadofx,Gradle,Kotlin,Javafx,Tornadofx,我正在使用gradle、Kotlin和TornadoFX构建一个JavaFX应用程序。构建和运行它与下面的gradle build和IntelliJ配合得很好,但是使用应用程序插件并运行应用程序时,我得到以下错误: Caused by: java.lang.IllegalAccessError: superinterface check failed: class de.codecentric.centerdevice.javafxsvg.SvgImageLoaderFactory (in u

我正在使用gradle、Kotlin和TornadoFX构建一个JavaFX应用程序。构建和运行它与下面的gradle build和IntelliJ配合得很好,但是使用应用程序插件并运行应用程序时,我得到以下错误:

Caused by: java.lang.IllegalAccessError: superinterface check failed: class de.codecentric.centerdevice.javafxsvg.SvgImageLoaderFactory (in
 unnamed module @0x591c2277) cannot access class com.sun.javafx.iio.ImageLoaderFactory (in module javafx.graphics) because module javafx.gr
aphics does not export com.sun.javafx.iio to unnamed module @0x591c2277
下面是我的gradle构建脚本。我怎样才能解决这个问题

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.50'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.8'
}

application {
    mainClassName = 'MainKt'
}

javafx {
    version = "13"
    modules = ['javafx.controls', 'javafx.base', 'javafx.graphics']
}

repositories {
    mavenCentral()
    mavenLocal()
    jcenter()
    maven {
        url "https://plugins.gradle.org/m2/"
    }
    maven {
        url "http://4thline.org/m2"
    }
}

dependencies {
    ...
}

tasks.test {
    useJUnitPlatform()
    testLogging {
        events("passed", "skipped", "failed")
    }
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

由于我使用的是一个非模块项目,并且依赖于JavaFX的模块,这就是我执行时出错的原因

> gradle run
我将以下内容附加到我的gradle文件中:

run {
    applicationDefaultJvmArgs = ['--add-exports=javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED',
    ]

    jvmArgs = ['--add-exports=javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED',
    ]
}

applicationDefaultJvmArgs之所以存在,是因为applicationGradle插件使用它来配置jvm参数,而不是jvmArgs。

因为我使用的是一个非模块项目,并且依赖于JavaFX的模块,这就是我执行时出错的原因

> gradle run
我将以下内容附加到我的gradle文件中:

run {
    applicationDefaultJvmArgs = ['--add-exports=javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
                                 '--add-exports=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED',
    ]

    jvmArgs = ['--add-exports=javafx.graphics/com.sun.javafx.iio=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.javafx.iio.common=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
               '--add-exports=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED',
    ]
}

applicationDefaultJvmArgs之所以存在,是因为application gradle插件使用它来配置jvm参数,而不是jvmArgs。

您是否尝试将包的导出添加到未命名模块中?这里可以找到一个例子:感谢您的回复。这个问题确实有帮助。我遇到的问题是,应用程序插件需要applicationDefaultJvmArgs,而不是jvmArgs。但是,对于将来需要帮助的任何人,请为返回该错误的任何包添加-add导出。您是否尝试将该包的导出添加到未命名模块中?这里可以找到一个例子:感谢您的回复。这个问题确实有帮助。我遇到的问题是,应用程序插件需要applicationDefaultJvmArgs,而不是jvmArgs。但是,是的,对于将来需要帮助的任何人,为返回该错误的任何包添加-add导出。非常感谢您的回答!它帮助了我:很好的答案,我花了2天的时间寻找解决方案。非常感谢你的回答!它帮助了我:很好的答案,我花了2天时间寻找解决方案。