无法从类中找到图像文件:java

时间:2015-10-27 09:32:31

标签: java

我正在尝试从java加载图像文件但无法执行此操作。 Java代码:

String image="com/image.png";
System.out.println(this.getClass().getResource("Test.class"));
System.out.println(new File(image).exists());

输出是:

/home/user/build/classes/com/ui/Test.class
false

包结构是

src    
  com/image.png    
  com/ui/Test.java

如果我使用绝对路径,我可以找到该文件。

知道为什么我无法使用上面的代码获取文件吗?

2 个答案:

答案 0 :(得分:1)

在此示例中,您使用两种不同的机制来加载资源。从类路径加载Test.class资源,但您要从文件系统加载图像文件。如果您更改代码以在加载类或当前线程getResource上使用ClassLoader方法,则应该能够加载图像。否则,您需要为正在尝试加载的图片指定正确的文件系统路径。

您可以从ClassLoader获取帖子Thread.getContextClassLoader()

如果您仍无法加载图片,则可能需要在路径中使用前导/。我不经常从类路径直接加载资源,我忘记了是否需要这些资源。

答案 1 :(得分:0)

您必须提供图像的完整路径,或者您可以尝试将其放在WebContent下并制作其路径" WebContent / com / image.png"。