3

这可能只是 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");

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

4

3 回答 3

1

您无法访问 global_images 文件夹,因为它不在 HelloWorld 项目的根文件夹中。

但是您可以给出显示该项目资源文件夹的相对路径。

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

路径信息

于 2012-12-18T23:05:35.680 回答
1

您可以使用Maven构建基础架构。有一个很好的eclipse集成。

Maven 被大量使用。Maven 使用最佳实践/约定,如目录树。

它进行库依赖管理并提供许多构建工具。

  • src/main/java - java 源代码
  • src/main/resources - 例如图片资源
  • src/main/webapp - Web 应用程序根目录
  • src/test/java - junit 测试
  • src/test/resources - 测试资源
  • 目标 - 构建目录

有多模块项目,父项目,继承父的依赖版本管理等功能。

于 2012-12-18T23:32:26.150 回答
0

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

于 2012-12-19T03:17:08.833 回答