【问题标题】:Java throwing NullPointerException when loading Images using getClass().getResource()使用 getClass().getResource() 加载图像时 Java 抛出 NullPointerException
【发布时间】:2012-06-19 20:02:27
【问题描述】:

我有一个 Applet,我试图在打包成 jar 文件后将其嵌入到 html 文件中。

图像通过以下行加载到主 Applet 类中

return getImage(getClass().getResource("/../content/"+path));

这在通过 eclipse 运行时有效,但是当我将其导出到 jar 文件时,我得到一个空指针异常。我做了一些谷歌搜索,并尝试使用 getResourceAsStream 和以下代码

InputStream is = new BufferedInputStream(
                 getClass().getResourceAsStream("/../content/"+path));
return ImageIO.read(is);

但这在 eclipse 中不起作用。

Content 是图像的顶级目录,path 是所需图像的指定路径。小程序在名为game的文件夹中,与内容同级

【问题讨论】:

  • 尝试将内容放入与访问内容的类相同的包中,并相应地更改路径,看看是否有帮助。如果是这样,那就是你的路径有问题......
  • 想到了,如果资源在自己的路径和包中,但不在当前包中,它永远不会成功!即使您尝试返回目录
  • 这个thread 可能会更清楚地说明这个话题:-)

标签: java image jar


【解决方案1】:

你可以试试这个。

getClass().getClassLoader().getResourceAsStream(name)

另外,你的路径看起来有点奇怪。 /.. 基本上是根的父目录,不可能工作。

【讨论】:

    【解决方案2】:

    我有同样的问题。但是使用解决了它:-

    <ClassName>.class.getClass().getResource(urlString);
    

    希望这会有所帮助...

    【讨论】:

      【解决方案3】:

      这是一条评论,现在我在这里回答了它(正如 OP 所说它确实有帮助):尝试将内容放入与访问内容的类相同的包中,并相应地更改路径,看看是否有帮助。如果是这样,则说明您的路径有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 2012-12-14
        相关资源
        最近更新 更多