getClass()。getResource()返回null

时间:2014-05-28 08:16:46

标签: java image null getresource resource-files

您好我正在与我的项目合作伙伴进行测验应用程序,在测验结束时,我正在尝试显示从我的资源文件夹到获奖者(奖杯)的图像。一切都很好,直到他试图在他的电脑上运行应用程序。该项目是共享的,所以如果他改变了某些东西,它会在我的文件中发生变化,反之亦然。

但此时我甚至不能让它在我的电脑上运行了。

这是我将图像放在名为Images的资源文件夹中的图像。您可以在here上看到此代码和代码。

我的代码如下:

BufferedImage image = null;
java.net.URL url = getClass().getResource("src/Images/trophy.png"); /* Draw an image for the winning team */
try 
{
    if (url == null)
       System.out.println("TEST");
    else 
    {
        image = ImageIO.read(url);
        g.drawImage(image, w / 2, 300, this); /* Draw the image */
    }
} 
catch (IOException e) 
{
    e.printStackTrace();
}

我已经尝试过像其他帖子中建议的那样清理项目,我已经将位置更改为此以及" /src/Images/trophy.png"但这也不起作用。谁知道什么是错的?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定您是如何测试代码的,但似乎您为资源提供的路径不在正在运行的应用程序的类路径中。

getResource()使用类加载器机制加载资源,因此资源必须位于类路径中。

您能说出用于运行程序的命令是什么(来自IDE,例如:Eclipse)? 您知道如何更改执行类路径(hint)吗?