代码之家  ›  专栏  ›  技术社区  ›  Lennie

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

  •  0
  • Lennie  · 技术社区  · 9 年前

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

    我已经阅读了如何将这些文件包含在jar中(使用Project->Properties->Sources->Add Folder)。

    然后我读到可以使用“getRessource()”或“getResourceAsStream”。

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

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

    “如何在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对我来说很好,我不需要使用“getResource”。

    谢谢你的帮助!如果缺少一些信息,请告诉我。

    1 回复  |  直到 9 年前
        1
  •  1
  •   jns    9 年前

    试试这个:

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