Eclipse - 引用Java资源

时间:2012-12-18 22:52:57

标签: java eclipse resources

这可能只是IDE的细节。但是对于Eclipse,我有兴趣更多地组织我的类和资源。

据我所知,默认的“src”目录是抛出我所有资源的地方。 如果我的资源位于那里,我可以像这样引用它们:

ImageIcon icon = new ImageIcon("src/icon-16x16.png");

如果我只为图标创建一个目录(在src /目录中),那么我只需改变路径:

ImageIcon icon = new ImageIcon("src/icons/icon-16x16.png");

所以,现在我想为src /目录之外的资源做一个单独的目录。

这是我的旧结构:

prj.HelloWorld  (project)
-> src/ .........
-> src/images/ ........
-> src/ (default package) ......classes.java

以下是我清理过的内容:

prj.HelloWorld  (project)
-> classes/ .........
-> images/ ........
-> media / ........

现在,我对使用专用项目( prj.Resources )感兴趣,只是为了我可以在所有项目中共享的公共资源。

prj.Resources  (project)
-> global_classes/ .........
-> global_images/ ........
-> global_media / ........

prj.HelloWorld  (project)
-> classes/ .........
-> images/ ........
-> media / ........

然后通过将 prj.Resources 添加到Java Build Path中的Projects选项卡来修改 prj.HelloWorld

(prj.HelloWorld>属性> Java构建路径>项目选项卡>添加...)

到目前为止我已经完成了,并且 prj.Resources / global_classes / 中的所有类都被成功检测到了。

但是global_images中的图像不是。

ImageIcon icon0 = new ImageIcon("global_images/icon.png");

我知道我们可以使用位于不同项目中的资源,但我在这里遗漏了一些明显的东西。

2 个答案:

答案 0 :(得分:1)

你不能访问global_images文件夹,因为它不在HelloWorld Project的根文件夹中。

但是您可以将相对路径显示为显示项目资源文件夹。

      ImageIcon icon0 = new ImageIcon("../Resources/global_images/icon.png");

Path Information

答案 1 :(得分:0)

了解如何从URL构建ImageIcon,以及如何相对于已编译的.class文件的位置find a URL构建它。 Eclipse不会自动将任何非.java文件复制到输出文件夹,因此您的图像也将会存在。这样做可以让程序继续工作,无论你是否将它打包成.jar文件,以及它们是否在不同的项目中,只要Java Build Path正确地表明它们的关系(它用于确定运行时类路径,由Class#getResource())搜索。