【发布时间】:2014-07-11 02:34:26
【问题描述】:
我很难从 fxml 文件加载位于 jar 文件中的文件(在我的情况下是 .png 和 .css)。
文件夹结构非常通用,如下所示:
/com/project/client/
main/
client.jar
fxml/
client.fxml
resources/
image.png
在我的 fxml 文件中,我有一个图像。它像这样加载图像:
<Image url="@../resources/image.png" />
当我通过 Eclipse 运行它时,一切正常。我怀疑这是因为 Eclipse 创建了一个 bin\ 目录,它将项目的所有内容导出为实际文件夹中的 .class 文件。当您尝试将其编译为 jar 并运行它时,一切都失败了,因为 fxml 没有意识到我需要它来加载包含在 jar 本身中的文件。
我进行了广泛搜索,但找不到任何可以帮助我解决此问题的方法。这里有没有人知道如何解决这个问题?
谢谢!
【问题讨论】:
-
为什么不直接在 FXML 中给出一些 id,然后将其加载到控制器上?
-
这意味着单独查看 fxml 文件会产生没有 css 样式和空图像的模糊结果。它当然可以工作,但它不是最佳的!我认为像 javafx 这样的技术将具有这样的功能,这样我就不需要“破解”,在代码中应用 css 等。
-
image.png 在 JAR 中的位置是什么?
-
用 7-zip 打开 jar,文件的位置如预期:在 com\project\client\resources\image.png