controlsfx JavaFX库具有一个演示程序,并且某些控件无法运行,例如“列表选择视图”,“列表操作视图”或“ BreadCrumbBar”。
我在新安装了JDK11和Gradle 5.5的新Windows 10 PC上对此进行了重新测试。我下载了分支9 .zip,验证是否存在module-info.java文件,然后输入
gradlew运行
对于上述示例,控制台显示:
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: Could not initialize class org.controlsfx.glyphfont.FontAwesome
at org.controlsfx.samples/org.controlsfx.samples.HelloListActionView.createActions(HelloListActionView.java:144)
at org.controlsfx.samples/org.controlsfx.samples.HelloListActionView.getPanel(HelloListActionView.java:63)
at org.controlsfx.fxsampler/fxsampler.SampleBase.buildSample(SampleBase.java:77)
at org.controlsfx.fxsampler/fxsampler.FXSampler.buildSampleTabContent(FXSampler.java:397)
at org.controlsfx.fxsampler/fxsampler.FXSampler.updateTab(FXSampler.java:305)
at org.controlsfx.fxsampler/fxsampler.FXSampler.changeSample(FXSampler.java:296)
at org.controlsfx.fxsampler/fxsampler.FXSampler.lambda$start$1(FXSampler.java:159)
JAVA_HOME是C:\ Program Files \ Java \ jdk-11.0.3
gradle --version
------------------------------------------------------------
Gradle 5.5
------------------------------------------------------------
Build time: 2019-06-28 17:36:05 UTC
Revision: 83820928f3ada1a3a1dbd9a6c0d47eb3f199378f
Kotlin: 1.3.31
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 11.0.3 (Oracle Corporation 11.0.3+12-LTS)
OS: Windows 10 10.0 amd64
我想利用FontAwesome以及上述控件。
我尝试过 JDK 11,11.0.1,11.0.2,11.0.2 摇篮5.2,5.5 命令行 IntelliJ 我通常在另一台PC上开发
答案 0 :(得分:1)
ControlsFX具有大量的外部依赖关系,这些依赖关系在build.gradle file中进行处理。
如果您的项目不使用gradle来构建库,而是导入了一个.jar,则应将所有这些选项添加到VM 。要在IntelliJ中执行此操作,请转到“编辑配置”,您可以在其中找到VM选项字段。
您可以尝试复制并粘贴以下选项:
--add-exports=javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.collections=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.runtime=org.controlsfx.controls --add-exports=javafx.web/com.sun.webkit=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls
这对我有用。使用ListSelectionView时,ControlsFX 11.0遇到了同样的问题。