classnotfound 异常,但一切看起来都是正确的。有人可以告诉我我的启动功能是否有误吗?
classnotfound exception but everything looks correct. can someone tell me if my start function is wrong?
这是我在主程序中的开始功能 class:
public void start(Stage primary) {
stage = primary;
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("UserInterface.fxml"));
try {
Parent root = (Parent) loader.load();
Scene scene = new Scene(root);
primary.setScene(scene);
}catch( Exception e) {
e.printStackTrace();
}
}
错误:
javafx.fxml.LoadException:
/C:/Users/micha/eclipse-workspace/woolard2/bin/masterfile/UserInterface.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at masterfile.Main.start(Main.java:42)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication12(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(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$null8(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2899)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 15 more
当我注释掉 "try" 中的所有内容时,一切正常并编译,但是当我尝试将加载设置为 root 时,它会中断。
所以它成功地找到了文件,但不会加载,因为它找不到 class,但它与 class 和所有东西都在同一个文件夹中......可以有人请帮助我
编辑- UserInterface.fxml -
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Scene?>
<Scene xmlns:fx="http://javafx.com/fxml/1" fx:controller="model.UserController.java">
</Scene>
在您的 FXML 中,您已将 fx:controller
属性 定义为 model.UserController.java
。但是你的class不是UserController.java
,那是源文件的名字,class名字是UserController
。修改您的 FXML 以使用 fx:controller="model.UserController"
.
这是我在主程序中的开始功能 class:
public void start(Stage primary) {
stage = primary;
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("UserInterface.fxml"));
try {
Parent root = (Parent) loader.load();
Scene scene = new Scene(root);
primary.setScene(scene);
}catch( Exception e) {
e.printStackTrace();
}
}
错误:
javafx.fxml.LoadException:
/C:/Users/micha/eclipse-workspace/woolard2/bin/masterfile/UserInterface.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at masterfile.Main.start(Main.java:42)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication12(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(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$null8(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2899)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 15 more
当我注释掉 "try" 中的所有内容时,一切正常并编译,但是当我尝试将加载设置为 root 时,它会中断。
所以它成功地找到了文件,但不会加载,因为它找不到 class,但它与 class 和所有东西都在同一个文件夹中......可以有人请帮助我
编辑- UserInterface.fxml -
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Scene?>
<Scene xmlns:fx="http://javafx.com/fxml/1" fx:controller="model.UserController.java">
</Scene>
在您的 FXML 中,您已将 fx:controller
属性 定义为 model.UserController.java
。但是你的class不是UserController.java
,那是源文件的名字,class名字是UserController
。修改您的 FXML 以使用 fx:controller="model.UserController"
.