Java getResource返回null mac

时间:2014-09-30 21:43:35

标签: java

我是StackOverflow的新手,在此处发布此问题之前,我已尽力解决此问题。我遇到了getResource()返回null的问题。我有一种预感,这是因为我在Mac上,这里的路径与PC上的路径不同(这个代码看起来工作得很好)。这是代码:

public class SampleClass
{
    static String imgpath = "/theimage.png";

    public static void main(String[] args)
    {
        System.out.println(imgpath);
        System.out.println(SampleClass.class.getResource(imgpath));
        try
        {
            BufferedImage image = ImageIO.read(SampleClass.class.getResource(imgpath));
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }

}

srcresbin都位于同一目录中,theimage.png位于res内。

System.out.println(SampleClass.class.getResource("imgpath"));给我null。

2 个答案:

答案 0 :(得分:0)

你得到nullpointer异常,因为该文件夹中没有名为imgpath的图像

public class SampleClass
{
    static String imgpath = "/theimage.png";

    public static void main(String[] args)
    {
        System.out.println(imgpath);
        System.out.println(SampleClass.class.getResource(imgpath));
        try
        {
            BufferedImage image = ImageIO.read(SampleClass.class.getResource(imgpath));
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }

}

答案 1 :(得分:0)

我在Mac上也遇到了同样的问题。在这里,我现在如何从资源获取文件。例如,我有一个普通的Maven项目,在 src / main 中具有 resource 文件夹。在资源文件夹中,我有一个文件“ test.txt ”。

要获取文件的路径:

public class Utils {
    public static String getFilePathInResources() {
        URL url = Utils.class.getClassLoader().getResource("test.txt");
        return url.getPath();
    }
}

这里的文件名是硬性的,只是为了清楚起见,实际上,它实际上是方法中的一个参数。

如果将文件名设置为“ /test.txt ”,并带有“ /”-这将给出

URL url = Utils.class.getClassLoader().getResource("/test.txt"); // url == null
相关问题