有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Intellij JavaFX Jar找不到要使用的资源

我遇到的问题是,当我创建当前JavaFX11项目的工件并运行jar时,由于jar没有找到分配给控制器的资源,我遇到了NullPointerException

我将资源保存在使用它们的控制器所在的包中

我的包结构如下所示:

  src/core/  Main.java
    |        StartingScreenController.java
    |        backgroundImage.jpg
    |        StartingScreen.fxml
    |
    products/game/app/Menu.fxml
                      MenuController.java

有趣的是,当我启动应用程序时,启动屏幕。但是,当我单击处理对新阶段(Menu.fxml)的更改的方法时,会显示fxml和背景图像,如下所示:

    Stage stage = new Stage();
    FXMLLoader fxmlLoader = new FXMLLoader();
    Pane root = fxmlLoader.load(
            getClass().getResource("../products/game/app/Menu.fxml")
            .openStream()
            );
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.setTitle("Some name");
    stage.setResizable(false);
    stage.show();

我在getClass()处得到一个NullPointerExecOption。getResource(“../products/game/app/Menu.fxml”)

令人惊讶的是,这个错误只出现在工件罐中,而不是在开发过程中

我使用Maven项目结构,但不将资源保留在资源包中


共 (0) 个答案