首页  >  文章  >  Java  >  如何解决从 JAR 运行时 JavaFX 中的“位置未设置”错误?

如何解决从 JAR 运行时 JavaFX 中的“位置未设置”错误?

Susan Sarandon
Susan Sarandon原创
2024-11-02 20:57:02242浏览

How to Resolve the

JavaFX 位置未设置错误解决

创建 JAR 文件后尝试通过命令行运行 JavaFX 项目时,您可能会遇到“位置未设置”错误。在资源加载和本地化上下文中正确使用 getClass().getResource() 时会出现此问题。

方法 getClass().getResource() 旨在加载资源,而不是指定文件路径。虽然这在 IDE 中似乎可行,因为类加载器从文件系统解析它,但在使用 JAR 类加载器时可能会失败,因为 JAR 类加载器不以相同的方式实现资源解析。

解决方案 1:使用绝对资源路径

要解决此问题,请使用 / 分隔符指定 FXML 文件的绝对资源路径:

<code class="java">FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));</code>

解决方案 2:使用控制器位置

或者,您可以利用代码组织并加载与其控制器相关的 FXML 文件:

<code class="java">FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));</code>

此方法与控制器和 FXML 的结构化打包保持一致文件并通过在移动 FXML 和控制器时自动更新导入语句来简化重构。

以上是如何解决从 JAR 运行时 JavaFX 中的“位置未设置”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn