GetResource 方法并不适用于任何地方

GetResource method doesn't work everywhere

您好,我遇到了“getResource”方法的问题。

new Object() {}.getClass().getResource("layout/main.fxml")

我试图从布局目录中获取资源文件,但当我在位于子目录的文件中使用它时,它总是 returns null。 (ResourcesUtils.java - 查看图片)

只有当我在不在子目录中的 Main.java 中使用它时才有效。

My project directory

我需要设置不同的路径吗?

感谢帮助

layout/main.fxml 是“相对路径”。为了获得具体路径,系统会添加您调用 getResource 的 class 包的路径,这将是代码所在的任何包,因为您是在匿名本地 class.

无论代码位于何处,绝对路径都有效:

getResource("/fr/etna/penelope/layout/main.fxml")

另一个解决方案可能是在特定 class 而不是匿名 class 上调用 getResource,因为这将使用固定的程序包名称。例如:

Main.class.getResource("layout/main.fxml")