【问题标题】:Having trouble loading image加载图片时遇到问题
【发布时间】:2013-12-02 15:26:16
【问题描述】:

我一直在尝试加载位于我的图像文件夹中的 image.png 文件:

在 Eclipse 中,我在我的 src 文件夹中创建了一个名为 images 的文件夹并将图像放在那里,所以它应该是我的类路径的一部分。

但是,当我尝试使用此图像时,它不起作用:

我试过这些:

Image image; 
String craft = "myApp/src/images/image.png";
ImageIcon ii = new ImageIcon(craft); 
        image = ii.getImage();

Image image; 
String craft = "myApp/src/images/image.png"; 
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
        image = ii.getImage();

以及弦工艺的各种变化:

"images/image.png", "/images/image.png", "/myApp/src/images/image.png"

【问题讨论】:

  • 在应该包含图像的 Jar 上执行 jar -tvf the.jar。我敢打赌,要么 a) 不在罐子里,要么 b) 不在你指定的路径上。
  • @AndrewThompson 谁说这是罐子?
  • 我可能会建议 Eclipse 不包含您的 src 路径作为其类路径的一部分。相反,您应该考虑在您的项目中创建一个“资源”目录并将您的资源添加到其中。为了更安全,在使用getClass().getResource(...) 时使用/ 是一个好主意,只要资源的路径是绝对的...
  • @Boann 是同一个人告诉 you OP 需要 you 代表他们提出愚蠢的问题,而不是他们的(更明智的)路线......只是告诉我他们自己。

标签: java image embedded-resource


【解决方案1】:

如果你有图片:

src/images/foo.png

并使用以下代码:

ImageIcon ii = new ImageIcon("images/foo.png");
Image image = ii.getImage();
System.out.println(image != null);

输出将是:

true

...也就是说,Image 不是null... ...如果您的类路径是 Eclipse 在创建项目时提供的默认构建路径(注意:应该与 Netbeans 等相同)。

如果您使用不同的构建脚本,无论是 Ant 还是 Maven,您可能需要更改路径。如果它是一个 Web 应用程序,你肯定会。

补充说明

  • Here 是一个很好的关于 Web 应用程序资源路径的 SO 线程。
  • Here 是典型的 Maven 文件夹布局——对你有用 如果您使用 Maven 作为构建/打包脚本,则开始。

【讨论】:

  • 谢谢,这很有帮助。
【解决方案2】:

每当您尝试在类路径中加载资源时,都需要指定正确的相对路径。如果你在类路径中有你的图像文件夹作为类的文件夹,那么你必须按如下方式加载它

String craft = "images/image.png"; 
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));

或者如果你在类路径中的 images 文件夹中有所有文件,你也可以直接指定文件名

   String craft = "image.png"; 
    ImageIcon ii = new ImageIcon(craft);

所以,我确定你给出的路径是错误的,这就是资源没有被加载的原因

【讨论】:

    【解决方案3】:

    试试这个

    String craft = "images/image.png"; 
    ImageIcon ii = new ImageIcon(craft);
    

    文件结构

    ProjectRoot
              images
                   imgage.png
              src
              bin
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多