Yan*_*kir 5 java javafx intellij-idea java-11 javafx-11
已经三天了,我在网上查找如何在 gradle 上解决这个问题
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
Run Code Online (Sandbox Code Playgroud)
在简单的想法项目中我添加了
--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
Run Code Online (Sandbox Code Playgroud)
我知道,我必须添加 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'
Run Code Online (Sandbox Code Playgroud)
谢谢
如果您正在运行非模块化项目(您没有module-info.java),要在运行任务中包含 VM 参数,您需要添加到build.gradle文件中的是:
run {\n jvmArgs = [\n "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED",\n "--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED",\n "--add-exports=javafx.base/com.sun.javafx.binding=ALL-UNNAMED",\n "--add-exports=javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED",\n "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED"\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n请注意,在这种情况下,您不能使用--add-exports=...=com.jfoenix.
如果您运行一个模块化项目,其模块描述符如下:
\nmodule hellofx {\xe2\x80\xa8 \n requires javafx.controls;\xe2\x80\xa8 \n requires javafx.fxml;\xe2\x80\xa8 \n requires com.jfoenix;\xe2\x80\xa8\xe2\x80\xa8 \n opens org.openjfx to javafx.fxml;\xe2\x80\xa8 \n exports org.openjfx;\xe2\x80\xa8\n}\nRun Code Online (Sandbox Code Playgroud)\n现在这些是您必须包含在构建文件中的 VM 参数:
\nrun {\n\xe2\x80\xa8 jvmArgs = [\xe2\x80\xa8\n "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix",\xe2\x80\xa8\n "--add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix",\xe2\x80\xa8\n "--add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix",\n "--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix",\n "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix"\n ]\n\xe2\x80\xa8}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |