为了好玩,我一直在用java、javafx和scene builder做一个自己的项目。不幸的是,我遇到了一个无法修复的问题。我有一个名为“Homepage”的fxml文件和一个名为HomepageController的控制器。当我运行程序时,它会给我一个错误“java”。lang.ClassNotFoundException:HomepageController’。我使用的是MVC架构,我的FXML文件在一个名为“views”的包中,我的控制器在另一个名为“controllers”的包中。我一直在搜索类似的问题,但找不到解决方案。有人能帮忙吗?
FXML文件
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.paint.Color?>
<?import javafx.scene.text.Font?>
<VBox prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="HomepageController">
<children>
<SplitPane dividerPositions="0.2505567928730512, 0.7505567928730512" focusTraversable="true" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS">
<items>
<AnchorPane>
<children>
<Label alignment="CENTER" layoutX="14.0" layoutY="14.0" minWidth="60.0" prefWidth="-1.0" style=" " text="Tournament" textAlignment="CENTER" wrapText="false">
<font>
<Font size="18.0" fx:id="x1" />
</font>
<textFill>
<Color blue="0.624" green="0.624" red="0.624" fx:id="x2" />
</textFill>
</Label>
<Button layoutX="58.0" layoutY="553.0" mnemonicParsing="false" onAction="#addTournament" text="Add Tournament" />
</children>
</AnchorPane>
<ScrollPane prefHeight="-1.0" prefWidth="-1.0">
<content>
<AnchorPane id="Content" minHeight="-1.0" minWidth="-1.0" prefHeight="592.0" prefWidth="430.0">
<children>
<Label alignment="CENTER" font="$x1" layoutX="14.0" layoutY="14.0" style=" " text="Teams" textAlignment="CENTER" textFill="$x2" wrapText="false" />
<Button layoutX="180.0" layoutY="553.0" mnemonicParsing="false" onAction="#addTeam" text="Add Team" />
</children>
</AnchorPane>
</content>
</ScrollPane>
<AnchorPane>
<children>
<Label alignment="CENTER" font="$x1" layoutX="14.0" layoutY="14.0" style=" " text="Players" textAlignment="CENTER" textFill="$x2" wrapText="false" />
<Button layoutX="74.0" layoutY="553.0" mnemonicParsing="false" onAction="#addPlayer" text="Add Player" />
</children>
</AnchorPane>
</items>
</SplitPane>
<HBox id="HBox" alignment="CENTER_LEFT" spacing="5.0" VBox.vgrow="NEVER">
<padding>
<Insets bottom="3.0" left="3.0" right="3.0" top="3.0" />
</padding>
</HBox>
</children>
</VBox>
控制器
package controllers;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
public class HomepageController {
@FXML
private Font x1;
@FXML
private Color x2;
@FXML
void addPlayer(ActionEvent event) {
System.out.println("Add Player Button");
}
@FXML
void addTeam(ActionEvent event) {
System.out.println("Add Team Button");
}
@FXML
void addTournament(ActionEvent event) {
System.out.println("Add Tournament Button");
}
}
这就是控制台上显示的内容
javafx.fxml.LoadException:
/C:/Users/joao/eclipse-workspace/Virtual%20Tournament/bin/views/Homepage.fxml:14
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:922)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at application.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$166(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$179(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$177(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$178(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$152(WinApplication.java:177)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: HomepageController
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:920)
... 22 more
使用FXML文件时,FXML文件需要知道控制器的文件和包名。
<代码>
我读了这个和这个,主要的想法是,有人有错误的结构和组件没有被扫描,我有一个正确的。 我的控制器正在正常初始化。我在Contructor上调试和设置断点进行了测试。它正在北京运行。尽管我的测试、邮递员和浏览器都无法到达endpoint。我得到的是404。我在用Gradle。我的代码是这样结构的。已经花了3个小时试图解决这个问题,但没有成功。 整个ApplicationContext.xml
问题内容: 我正在使用simple_form gem并生成表单,我正在指定remote:true选项,如下所示: 因此,表单的输出html是以下片段: 正如我检查的那样,当使用 remote:true 选项时,使用标准的form_for帮助器将 data-remote =’true’添加 到表单中。从生成的html中可以看到,当我使用simple_form gem时,也有这样的属性。 __ 因此,
问题内容: 我有一个配置功能: InnerView位于mainView内部。当我获得url like时,函数按预期工作。但是,当我获得带有id的url时,即,我看不到任何输出,但是我希望输出,这就是我遇到的问题。我认为绝对/相对视图存在问题,但是我已经尝试了所有组合,但仍然无法正常工作。 更新: 所以现在我有以下状态: 正如RadimKöhler所说。输出,但是从现在开始我该如何到达? 问题答案:
我基本上遵循下一个教程:https://picocli.info/#_running_the_application 我正在尝试使用下一个命令运行我的应用程序: 我所在的目录中有2个JAR,分别是picocli和bashTool,但我收到了下一条错误消息: 这是y目录的外观: 有什么想法吗?
我正在开发我的第一个基于spring的项目样本。下面是我的dispatcher-servlet.xml的摘录。 我尝试向以下url发布帖子,但它似乎从未到达相应的控制器类: 网址: post<code>{“testID”:“1”} 就是回应。 为什么我得到400错误,尽管一切似乎都在地方?
对于Corda节点,控制器节点作为网络地图并提供验证公证服务。如果控制器节点关闭了怎么办?其他节点会独立运行吗?