如何在通过JLink部署的应用程序中包含资产?

时间:2020-08-14 18:34:28

标签: java javafx jlink

我有一个具有以下文件夹结构的JavaFX Maven项目:

+ -- src/

+ -- -- java/
+ -- -- -- com/pkg/
+ -- -- -- -- App.java

+ -- -- resources/
+ -- -- -- com/pkg/
+ -- -- -- -- fxml/app.fxml
+ -- -- -- -- css/app.css
+ -- -- -- -- img/img.png

例如,当我需要加载FXML文件时,我这样做:

URL url = getClass().getResource("/com/pkg/fxml/app.fxml");

在我尝试通过JLink交付应用程序之前,一切都很有趣,也充满了游戏性。我运行了JLink maven目标,它在/target/image/bin/java中创建了一个可执行文件。我可以运行它,但是它很快会引发LoadException,因为它找不到某些FXML文件。确实,我.fxml中找不到任何.css.pngtarget/文件,因为resources/不存在。

那么我在这里做错了什么-文件结构还是构建?我该如何解决?

0 个答案:

没有答案