我对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();
}
}
}src、res和bin都在同一个目录中,theimage.png位于res中。
System.out.println(SampleClass.class.getResource("imgpath"));给出了null。
发布于 2014-09-30 21:54:35
获得空指针异常,因为该文件夹中没有名为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();
}
}
}发布于 2020-01-09 15:31:18
我在Mac上也面临着同样的问题。这里我是如何从资源获取文件的。例如,我在src/main中有一个带有资源文件夹的Maven项目。在资源文件夹中,我有一个文件"test.txt“。
要获得文件的路径,请执行以下操作:
public class Utils {
public static String getFilePathInResources() {
URL url = Utils.class.getClassLoader().getResource("test.txt");
return url.getPath();
}
}在这里,文件名是硬核的,只是为了清晰,当然,它实际上是方法中的一个参数。
如果将文件名设置为"/test.txt“和"/”,则会给null。
URL url = Utils.class.getClassLoader().getResource("/test.txt"); // url == nullhttps://stackoverflow.com/questions/26130624
复制相似问题