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

Java/JNLP中加载资源的可靠方法

  •  2
  • mikera  · 技术社区  · 15 年前

    我正在编写一个Java应用程序,它需要访问在JNLP上运行的.jar文件中的多个资源。

    虽然应用程序在我的开发环境(Eclipse)中运行良好,但当通过JNLP执行时,它不工作,这显然是因为它在jar中找不到资源文件。我已经检查了资源文件,资源肯定在那里。

    我目前使用的代码如下:

     someclass.getResourceAsStream("/resources/somefile.png");
    

    2 回复  |  直到 15 年前
        1
  •  2
  •   Romain Hippeau    15 年前

    用法:this.getClass().getClassLoader().getResourceAsStream(名称)


    1-使用jar文件中自己的类。如果使用另一个类(例如Object),则会失败
    2-名称,即资源必须不带前导“/”

        2
  •  1
  •   assylias    13 年前

    我在一个类似的问题上耽搁了一段时间,@Devon\u C\u Miller的评论救了我一命(有一次我看到了,过了一段时间!),所以我想我应该把它复制到这里:

    在我的例子中,对于JAR中的文件,我使用以下语法: /properties/config.properties

    //NO LEADING `/` EVEN IF IT IS AN ABSOLUTE PATH
    private final static String CONFIG_FILE = "properties/config.properties";
    InputStream resource = Configuration.class.getClassLoader().getResourceAsStream(CONFIG_FILE);