我正在尝试从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
如果我使用绝对路径,我可以找到该文件。
知道为什么我无法使用上面的代码获取文件吗?
答案 0 :(得分:1)
在此示例中,您使用两种不同的机制来加载资源。从类路径加载Test.class
资源,但您要从文件系统加载图像文件。如果您更改代码以在加载类或当前线程getResource
上使用ClassLoader
方法,则应该能够加载图像。否则,您需要为正在尝试加载的图片指定正确的文件系统路径。
您可以从ClassLoader
获取帖子Thread.getContextClassLoader()
。
如果您仍无法加载图片,则可能需要在路径中使用前导/
。我不经常从类路径直接加载资源,我忘记了是否需要这些资源。
答案 1 :(得分:0)
您必须提供图像的完整路径,或者您可以尝试将其放在WebContent下并制作其路径" WebContent / com / image.png"。