当前位置: 首页 > 知识库问答 >
问题:

生成项目[重复]后找不到FXML文件

何灿
2023-03-14

为了学习JavaFX,我使用IntelliJ IDEA创建了我的第一个项目,并将该项目导出为Eclipse项目。当我在这两个IDE中运行项目时,一切都运行得很好。不幸的是,在构建项目并尝试运行.jar或.exe文件之后,我得到了一个异常,我认为问题出在FXMLLoader中,它无法找到fxml文件。

public void initRootLayout() {
        try {
            // Load root layout from fxml file.
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Main.class.getResource("../view/RootLayout.fxml"));
            rootLayout = (BorderPane) loader.load();
            // Show the scene containing the root layout.
            Scene scene = new Scene(rootLayout);
            primaryStage.setScene(scene);
            primaryStage.show();
            // Give the controller access to the main app.
            RootLayoutController rootLayoutController = loader.getController();
            rootLayoutController.setMain(this);
        } catch (IOException e) {
            showExceptionDialog(e);
        }
        // Try to load last opened person file.
        File file = getPersonFilePath();
        if (file != null) {
            loadPersonDataFromFile(file);
        }
    }

项目层次结构

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Location is not set.
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
        at com.melkojji.controller.Main.initRootLayout(Unknown Source)
        at com.melkojji.controller.Main.start(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(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$148(WinApplication.java:191)
        ... 1 more
Exception running application com.melkojji.controller.Main

共有1个答案

马浩淼
2023-03-14

我不认为您的fxml文件是与JAR一起打包的。您应该使用资源文件夹。转到项目设置并设置模块的资源文件夹。

 类似资料:
  • 我得到了这两个错误。错误:找不到或加载主类骰子生成项目错误:找不到符号 我的文件保存为Dice.java.我检查了,因为这是我最后一个程序的问题之一。至于符号错误,我不确定。 公共类骰子{ //掷骰子。 扫描仪键盘=新扫描仪(System.in); 这只是源代码的一部分。

  • 在Maven项目中运行main类时,我得到: 应用程序启动方法中的异常 据我所知,这是因为FXML文件无法加载。 这是文件系统层次结构 在Eclipse(src内部) 阅读apache的maven指南和其他statck问题,下面的代码片段似乎是创建并指向文件的正确方法。 但是这段代码将抛出前面声明的异常。 当我试图找出代码中异常

  • 我对这个问题做了一些研究,但仍然无法解决。我还在这里搜索了堆栈溢出的其他方法,但到目前为止还没有成功。我试过不带样例,把它移到另一个文件夹,没有效果。结构如下: 主要Java代码 controller.java代码 我跟随本教程学习更多关于JavaFX和XML的知识。

  • 导入某些项目后,我遇到以下错误。该项目最初来自GitHub。 升级到gradle 2.10后发生 这就是我得到的错误。 这是我的身材。梯度锉

  • 我有一个标准的(非JavaFX)MavenJava项目。它应该做的第一件事是加载一个. fxml文件,但是我似乎无法使用找到它。 这是不寻常的,因为此项目是从标准Java项目导入的,该项目运行良好,没有错误。 以下是主要方法: URL总是返回为。 我有作为测试方法,看看URL对象是否返回为null。根据我所读到的关于的所有内容,它应该得到与调用类相同的包中的任何对象,这是。 以下是

  • 清理项目后,我无法在我的gen文件夹中看到R.java文件。我重启了Eclipse,重启了系统,改变了工作区也没用,创建了新项目,但是那个新项目也没有生成r.java文件。我怎样才能摆脱这个问题。这个问题占用了我的时间,有谁能让我远离这个...