【问题标题】:Load image from jar and outside it in eclipse在 Eclipse 中从 jar 和外部加载图像
【发布时间】:2013-06-09 18:10:37
【问题描述】:

我在eclipse的java项目中有这样的结构:

  • src/com/myprogram/.../foo.java
  • res/icon.png
  • .project
  • ...

我知道您可以使用

从 jar 中加载图像
ImageIO.read(getClass().getResource("/res/icon.png"));

当您尝试使用 eclipse 直接运行应用程序时出现问题,因为(我猜)res 文件夹不在 src 文件夹中,您会得到一个 null URL。而且我想为源代码和资源设置单独的文件夹。

另外,我发现我可以在 Eclipse 中将 res 文件夹添加到类路径中,以便加载它:

URL url = getClass().getResource("/res/icon.png");
if (url == null)
    url = getClass().getResource("/icon.png");
ImageIO.read(url);

但是这个添加代码只有在你开发的时候才需要,我不喜欢做这样的事情(代码应该尽可能的干净和最终)。

可以用相同的代码用两种方法读取图标吗?

【问题讨论】:

    标签: java eclipse jar resources


    【解决方案1】:

    在你的项目中创建一个resources文件夹,在eclipse中将其标记为源文件夹,将res文件夹放在resources下,并确保你的非eclipse构建了resources下的所有内容罐子。然后使用

    加载图标
    getClass().getResource("/res/icon.png")
    

    您的问题是由于您非eclipse构建将res放入jar中,但eclipse将res内容放入了目标目录。

    【讨论】:

      【解决方案2】:

      您需要将您的 res 文件夹标记为源文件夹(项目属性 > 源 > 添加文件夹)。

      此文件夹中的所有内容都将在类路径中可用。

      【讨论】:

        猜你喜欢
        • 2011-02-03
        • 1970-01-01
        • 2021-07-20
        • 2011-09-11
        • 1970-01-01
        • 2015-07-01
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多