【问题标题】:Unable to find image file from a class: java无法从类中找到图像文件:java
【发布时间】:2015-10-27 09:32:31
【问题描述】:

我正在尝试从 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

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

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

【问题讨论】:

  • 看这里:[看这里][1] [1]:stackoverflow.com/questions/9787368/…我认为这对你有用。
  • 我试过这样。那没起效。可能是因为构建路径不同吗?我已将构建路径指定为:/home/user/build/classes

标签: java


【解决方案1】:

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

您可以从Thread.getContextClassLoader() 获取线程的ClassLoader

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

【讨论】:

    【解决方案2】:

    你必须给出图片的完整路径,或者你可以尝试将它放在WebContent下,并使其路径为“WebContent/com/image.png”。

    【讨论】:

    • 什么网页内容?没有迹象表明这是一个网络应用程序。
    • 您可以尝试打印您当前的工作目录,然后查看 image.png 的路径。如果您当前的工作目录是 src,com/image.png 应该可以工作。
    • 这不是网页内容。此外,这将在以后捆绑为一个 jar。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多