如何使用可执行文件 Jar 中包含的文件

How to use included Files in Executables Jar

我有问题,我的应用程序需要图像 (jpgs)、音频文件 (mp3) 和 css 文件。在 IDE 中,我可以只使用一个字符串指向它们并使用它们。

我已经阅读了如何将这些文件包含在 jar 中(使用项目 -> 属性 -> 源代码 -> 添加文件夹)。

比我读的可以用"getRessource()"或"getRessourceAsStream"。

我尝试使用 "getRessource()" 将图像加载到我的 jar 中......但没有成功。所以我尝试了 getRessourceAsStream。这很有效,我能够从 InputStream 创建一个 JavaFx.Image。代码:

InputStream bild = getClass().getResourceAsStream("/eins.jpg");
Image img = new Image(bild);

问题 "How to use Files inside a jar" 的大部分答案都说您应该始终使用 InputStream。

现在我的问题是我使用 "scene.getStylesheets().add()" 对于该方法我需要一个 String 而不是 InputStream。 "Media m = new Media()".

也是如此

要么有一种方法可以使用来自两个资源的 InputStream(添加 css 和音频文件),要么可以将 InputStream 转换为我可以用于这两种方法的东西。两个都适合我。

此代码对我不起作用:

URL url = getClass().getResource("/style.css");
scene.getStylesheets().add(url.getFile());

那么如何使用我的 jar 中包含的 css 文件。如果可能,使用 InputStream 对我来说没问题,我不需要使用 "getRessource".

感谢帮助!如果缺少某些信息,请告诉我。

试试这个:

scene.getStylesheets().add(getClass().getResource("/style.css").toExternalForm());