【发布时间】:2018-10-23 20:44:57
【问题描述】:
我刚刚完成了我的第一个 java 项目,但是我似乎无法正确构建它。它将加载整个计算器运行的初始 fxml 文件,但是当我尝试在假期/休息菜单中添加假期/休息时,应该显示一个对话框窗格,以便用户可以填写信息,但我不断得到一个位置当我在 cmd 中运行 jar 文件时设置错误。当我在 intellij 中启动它而不是在 jar 中时,一切正常。
这就是我设置文件的方式。我在 FinishedCalCulator 项目中做了一个资源目录,并标记为资源根目录
这就是我将 FXML 文件的位置设置到加载器中的方式。当我在 Intellij 中运行它而不是在 jar 文件中运行它时,这有效。
我环顾四周,发现一些帖子谈论将所有 fxml 文件放入资源文件中,我这样做并让它在 Intellij 中再次工作,但是当我尝试添加时它仍然不会显示对话框窗格他们。我不确定我在这里做错了什么。我不认为我完全理解我做错了什么。任何帮助都会很棒。
【问题讨论】:
-
您的资源文件名为
AddHolidayDialog.fxml,但您正在使用getClass().getResource("/addHolidayDialog.fxml")搜索它。注意到“A”中大小写的不同了吗? JAR 文件的“文件系统”区分大小写。但是,Windows 的文件系统不是。因此,它在从 Intellij 运行而不是从 JAR 运行时可以工作。 -
请勿发布代码截图。将代码发布为格式化为代码块的文本。在这种情况下,屏幕截图提供的唯一附加信息是
getResource方法参数的名称并突出显示dialog的出现。不过,此信息对问题并不重要。堆栈跟踪也应该作为文本(代码块)而不是屏幕截图发布;将错误流重定向到文本文件并将其复制并粘贴到问题应该足够简单......