gpt4 book ai didi

java - 如何修复jvm选项在gradle idea上将javafx 11导出到com.jfoenix?

转载 作者:行者123 更新时间:2023-11-30 01:45:36 32 4
gpt4 key购买 nike

我已经在互联网上查找如何在 gradle 上修复此问题 3 天了

Caused by: java.lang.IllegalAccessError: class com.jfoenix.skins.JFXTabPaneSkin (in module com.jfoenix) cannot access class com.sun.javafx.scene.control.behavior.TabPaneBehavior (in module javafx.controls) because module javafx.controls does not export com.sun.javafx.scene.control.behavior to module com.jfoenix

在我添加的简单想法项目

--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix --add-exports javafx.controls/com.sun.javafx.scene.control=com.jfoenix --add-exports javafx.base/com.sun.javafx.binding=com.jfoenix --add-exports javafx.graphics/com.sun.javafx.stage=com.jfoenix --add-exports javafx.base/com.sun.javafx.event=com.jfoenix 

我知道,我必须添加 jvm 选项,但我该怎么做?

我在 intellij idea 上使用 gradle javafx 11.0.2、java 11,

这是build.gradle

plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}

compileJava.options.encoding = 'UTF-8'
repositories {
mavenCentral()
}

dependencies {
// https://mvnrepository.com/artifact/com.jfoenix/jfoenix
compile group: 'com.jfoenix', name: 'jfoenix', version: '9.0.9'
compile group: 'de.jensd', name: 'fontawesomefx-fontawesome', version: '4.7.0-9.1.2'
// https://mvnrepository.com/artifact/de.jensd/fontawesomefx-commons
runtime group: 'de.jensd', name: 'fontawesomefx-commons', version: '9.1.2'
// https://mvnrepository.com/artifact/com.h2database/h2
compile group: 'com.h2database', name: 'h2', version: '1.4.199'
}

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

mainClassName = 'org.yanisboukir.agence.Main'

谢谢

最佳答案

如果您正在运行非模块化项目(您没有 module-info.java),要在运行任务中包含 VM 参数,您需要将所有内容添加到 build.gradle 文件是:

run {
jvmArgs = [
"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED",
"--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED",
"--add-exports=javafx.base/com.sun.javafx.binding=ALL-UNNAMED",
"--add-exports=javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED",
"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED"
]
}

请注意,在这种情况下,您不能使用 --add-exports=...=com.jfoenix

如果您运行一个模块化项目,其模块描述符如下:

module hellofx {
    
requires javafx.controls;

requires javafx.fxml;

requires com.jfoenix;


opens org.openjfx to javafx.fxml;

exports org.openjfx;

}

现在这些是您必须包含在构建文件中的 VM 参数:

run {

 jvmArgs = [

"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix",

"--add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix",

"--add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix",
"--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix",
"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix"
]

}

关于java - 如何修复jvm选项在gradle idea上将javafx 11导出到com.jfoenix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58133725/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com