如何解决为什么在 mvn gluonfx:nativerun 时找不到 Gluon control CardPane?
这是 FXML 文件:
<?import com.gluonhq.charm.glisten.control.CardPane?>
<?import com.gluonhq.charm.glisten.mvc.View?>
<?import javafx.scene.layout.BorderPane?>
<View fx:id="myView" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="335.0" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.mydomain.view.MyPresenter">
<center>
<BorderPane prefHeight="591.0" prefWidth="322.0" BorderPane.alignment="CENTER">
<center>
<CardPane fx:id="cardPane" prefHeight="465.0" prefWidth="333.0" />
</center>
</BorderPane>
</center>
</View>
如果我 mvn gluonfx:run
那么它工作正常。我看到了 CardPane。我可以添加卡片。我看到它按预期更新了卡片列表。
但是如果我再尝试 mvn gluonfx:nativerun
我失败了 ClassNotFoundException: com.gluonhq.charm.glisten.control.CardPane
这是命令行调用堆栈的摘录:
Caused by: javafx.fxml.LoadException:
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] com/mydomain/view/myView.fxml
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB]
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2949)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2793)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2758)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2624)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at com.airhacks.afterburner.views.FXMLView.loadSynchronously(FXMLView.java:91)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] ... 21 more
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] Caused by: java.lang.ClassNotFoundException: com.gluonhq.charm.glisten.control.CardPane
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:71)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at java.lang.ClassLoader.loadClass(ClassLoader.java:212)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:3017)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:3006)
[Wed Jul 21 09:59:25 MST 2021][INFO] [SUB] at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2947)
解决方法
感谢@JoséPereda 提醒我下一步该往哪里看。一路上出现了新问题,但我最终让应用程序在本机运行模式下运行。
然而,我后来意识到我的菜鸟错误。我忘了继续回到项目 pom 文件来更新 gluon 插件的反射列表。因此,我取消了底层配置文件的混乱修复,然后按如下方式进行了更新。我根据我看到的堆栈跟踪反馈向您展示了我需要提及的平台小部件。我还列出了我自己的课程,但也不要在这里展示这些课程。
<artifactId>gluonfx-maven-plugin</artifactId>
<version>${gluonfx.plugin.version}</version>
<configuration>
<reflectionList>
<list>javafx.scene.control.DatePicker</list>
<list>com.gluonhq.charm.glisten.control.CardPane</list>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。