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

JavaFX:cmd中位置未设置错误

乐正浩博
2023-03-14

我的项目在eclipse中运行得很好,但当我在cmd中运行该项目的jar时,我得到错误java.lang.IllegalStateException:Location is not set.似乎我的FXML没有正确加载。我知道这个问题被问了很多次,但没有一个能解决我的问题。我试着用

FXMLLoader loader = new FXMLLoader(Main.class.getResource("/application/MainWIndowView.fxml"));
AnchorPane root = (AnchorPane) loader.load();

但我还是有错误。

这是我的项目的结构

在Eclipse中运行的方法:

public void showMainWIndow() throws IOException, SQLException {
    FXMLLoader loader = new FXMLLoader(Main.class.getResource("/application/MainWIndowView.fxml"));
    AnchorPane root = (AnchorPane) loader.load();

    MainWindowController controller = loader.getController();
    controller.setMain(this, primaryStage);
    controller.setKeyPress();
    controller.bindWidthAndHeight();

    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();
}

共有1个答案

司马作人
2023-03-14

简单更改

Main.class.getResource("/application/MainWIndowView.fxml")

Main.class.getResource("MainWindowView.fxml")

并且要注意区分大小写,因为在mainwindowview.fxml中有一个大写i,但文件名为mainwindowview.fxml

当您在Eclipse的开发过程中运行时,它正在从文件系统加载类。因此,如果您使用的操作系统对文件的处理是相同的,而不管文件名的大小写,那么它将找到正确的资源。显然,在一个jar文件中(或者在任何合理的操作系统中),情况并非如此。

 类似资料:
  • 问题内容: 当选择menuItem时,尝试关闭当前场景并打开另一个场景时出现问题。我的主要阶段编码如下: 执行该程序后,它将转到cartHomePage.fxml。选择菜单项后,我可以从那里选择创建产品或创建类别。这是我的动作事件: 但是,我只能切换一次舞台。例如,我的默认页面是cartHomePage.fxml。运行程序时,首先要创建产品阶段。在那之后,我不能再去任何地方了。错误消息是: 我关上

  • 我的项目在eclipse中正常运行,但当我创建该项目的jar文件并试图通过cmd运行它时,它显示“Location is not set”错误。 我的项目结构是: 方法是(在eclipse中运行):

  • 当我运行我的应用程序时,我有“应用程序启动方法[警告]java.lang.reflect.InvocationTargetException异常”。我尝试使用fxml路径但仍然不起作用。当使用try/catch时,我有“位置未设置错误”。 我还得到了“未能在项目Test-generator-Maven上执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:ja

  • 当选择menuItem时,尝试关闭当前场景并打开另一个场景时,我遇到了问题。我的主阶段编码如下: 当程序执行时,它将转到carthomepage.fxml。从那里,我可以选择去创建产品或创建类别时,菜单项被选中。下面是我的操作事件: 提前道谢。

  • 我在尝试运行我的代码时遇到了这个错误,这是一个简单的javafx代码来加载一个fxml文件,我尝试了我在这里找到的解决方案,但没有一个对我有效。很抱歉,如果格式不是很好,这是我在这里的第一个帖子,并且很抱歉,如果我在屠杀语言,英语不是我的第一语言。提前道谢! 这是事情的组织方式

  • 救命啊!我卡住了..我尝试运行我的主javafx应用程序 这是我的代码。 下面是我的文件夹结构:图片文件夹结构 下面是错误