【问题标题】:How to load resources consistently in applet and desktop-app?如何在小程序和桌面应用程序中一致地加载资源?
【发布时间】:2014-03-08 09:52:26
【问题描述】:

我有一个桌面应用程序,我想要它的小程序版本。 我希望 jar 是可执行的,并且能够作为小程序运行。

我有一个 GamePane 类扩展 JPanel 并以下列方式从媒体文件夹加载一些媒体:

File f = new File("media/path/to/file");

无论 jar 是作为可执行文件还是作为 applet 运行,我如何修改它才能正确加载媒体?

我看到了this answer,但没有任何建议有效,至少当正在运行的代码位于bin 文件夹而不是 jar 中时,这些建议都不起作用。如果它只适用于 jar,那么有没有办法让开发过程不那么痛苦?

我的目录结构是:

Game->
    media
    game.jar

【问题讨论】:

    标签: java image applet load media


    【解决方案1】:

    将媒体文件存储在 jar 中,这将使它们从类路径中可用,然后使用

    MyClass.class.getResource("/media/foo.png")
    

    MyClass.class.getResourceAsStream("/media/foo.png")
    

    有权访问媒体(作为 URL 或作为流)。

    在开发过程中,由于您希望从类路径加载媒体,这仅意味着媒体必须存储在您的源文件夹中:IDE 会为您将它们复制到目标目录(即 .class 文件所在的位置)由编译器生成)。

    【讨论】:

    • 如果我把它放在罐子外面怎么办?
    • 然后使用基本 URL(指向文件或文档库)参数化您的应用程序/小程序,并使用 URL 加载媒体。 URL 是对访问资源的多种方式的抽象。
    • “如果我必须把它放在罐子外面怎么办?”什么时候/为什么会出现?
    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 2014-02-05
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多