我想运行我的应用程序,但是异常返回给我。我找到了一个类似的question,并且以相同的方式进行了操作,但是并没有帮助我。我认为该错误很愚蠢,但是我看不到它,并且我不知道该怎么办,请帮忙。
我的主要方法
public class App extends Application {
private Stage menuBar;
private BorderPane mainWindow;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
this.menuBar = primaryStage;
initMenuWindow();
}
private void initMenuWindow() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(App.class.getResource("menuWindow.fxml"));
mainWindow = loader.load(); //ERROR
Scene scene = new Scene(mainWindow);
menuBar.setScene(scene);
menuBar.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
和例外
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.IllegalStateException: Location is not set.
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2459)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
at java/zherikhov.App.initMenuWindow(App.java:48)
at java/zherikhov.App.start(App.java:27)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
... 1 more
Exception running application zherikhov.App
我的Java模块
module java {
opens zherikhov to javafx.fxml;
exports zherikhov;
requires javafx.fxml;
requires javafx.graphics;
requires javafx.controls;
}
[ [
答案 0 :(得分:-1)
您的问题看起来很简单,
只需将FXML文件名menuWindow.fxml
替换为以 src 文件开头的文件的完整路径,并以文件名结尾为.fxml
我希望这对您有用(在我的情况下有效,但是您项目的结构看起来有所不同)