【问题标题】:How to access a Image file in a Eclipse Project Folder如何访问 Eclipse 项目文件夹中的图像文件
【发布时间】:2012-04-04 22:53:05
【问题描述】:

我的 Eclipse 项目的文件夹中有一个图像文件,用于存储图像文件 (logo.jpg)。但是我不知道如何在我的主程序中访问它。

我已经尝试了以下

private static URL logoPath

public class MainApplication
{
     public void createGui()
     {
          logoPath.getClass().getResource("/Resources/images/logo.jpg");
          ////
     }
     /////
}

问题是我不断收到一个空指针异常,所以很明显路径做错了,否则 logoPath.getClass() 会出错。

有什么想法吗?

【问题讨论】:

  • 没有接受者?我想在分发 JAR 文件时存储一个图像以用作徽标,所以我需要确保我每次都引用适当的位置,而不是我的电脑上的设置位置

标签: java eclipse image directory


【解决方案1】:

我也是这样做的

 String filename = "logo.jpg";

 Main.getClass().getClassLoader().getResource(filename);

文件结构是这样的

/src/main/java/com/hauke/Main.java

/resource/logo.jpg

我的问题是在此之前我将目录命名为“资源”,它应该是“资源”

【讨论】:

    【解决方案2】:

    您需要将您的资源放在一个 java 源目录中以使它们可见。你有两个选择:

    1. 将“resources”文件夹移至现有“src”文件夹下。

    2. 为资源创建一个新的源文件夹。您可以在项目属性的 Java 构建路径页面中执行此操作。

    需要注意的几件事...

    1. 注意你的大小写。 Java 资源查找区分大小写。

    2. 您将使用的路径将相对于源文件夹(不是项目根目录)。例如,如果您将资源文件夹设为源文件夹,则您的路径需要为“images/...”。如果您想在查找路径中保留资源文件夹,则需要在项目中创建一个额外的文件夹级别作为资源的源根目录。

    3. 我不确定这是否是一个实际问题,但资源路径不应以斜杠开头。它们并不是传统意义上的真正路径。将它们视为包限定的类名,但使用 '/' 而不是 '.'作为分隔符。

    【讨论】:

    • 好的,“文件夹”和“源文件夹”之间到底有什么区别?其次,您是说“资源”文件夹应该在 src 文件夹中吗?第三,把所有这些放在一起,我应该寻找像这样的东西logoPath.getClass().getResource("resources/logo.jpg");
    • 准确地说,Java 源文件夹(在项目属性的 Java 构建路径面板中指定)控制 Eclipse Java 支持查找 .java 源文件及其相关资源的范围。项目中的其他所有内容都是不可见的。如果您将“resources/logo.jpg”放在现有的“src”文件夹中,那么 getResource("resources/logo.jpg") 确实是正确的调用。
    • 所以我终于得到了这个工作。它最终与URL logoPath = new MainApplication().getClass().getClassLoader().getResource("logo.jpg"); 一起工作,尽管我现在的问题是这在我的机器上可以正常工作,但在不同的机器上却不行
    【解决方案3】:

    你可以用这种方式 我有以下包结构

    • src/test(包test包含Java文件)

    • src/images(文件夹图片包含图片)

    我要从 src/images/login.png 位于 src/test/*.java

    JLabel label = new JLabel(new ImageIcon(getClass().getResource("/images/login.png")));

    【讨论】:

    • 我不确定这与问题有关 - 有人吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2018-06-01
    • 2013-10-19
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    相关资源
    最近更新 更多