Eclipse的工作区:我应该将我的图像放在'src'或'bin'文件夹中吗?

Ram*_*ama 6 java eclipse workspace file

我正在使用Java进行项目,有时我的所有图像都随机地从项目的bin文件夹中消失.它变得非常烦人,因为每次发生时我都必须再次放置所有东西.有人告诉我,我不应该把我的额外文件放在bin中,而是放在src中.但是如果我将它们放在src中,eclipse就不会读取我的图像,好像它们不存在一样.为什么会这样?谢谢.

小智 13

请遵循以下两个步骤.在Eclipse Kepler中为我工作得很好.

  1. 将您的图像或其他资源文件放入Java项目中

    一世.鼠标右键单击您的Java项目并执行:New -> Source Folder.在这个例子中,我将我的文件夹称为"res".

    II.转到文件浏览器,您应该在Java项目的根文件夹下看到这个"res"文件夹.现在将图像和其他资源文件复制或移动到其中.

    III.现在转到Eclipse并右键单击此"res"文件夹并执行:刷新.您应该看到这些文件显示在其中.

    IV.现在构建项目,您应该看到您的资源文件被复制到构建目标"bin"文件夹中.

  2. 现在在您的类中(例如您自己的JFrame类,如this下面的示例代码中所示),您可以访问资源文件并记下前导" / "以指示相对于二进制根的文件位置:

    Image img = new ImageIcon(this.getClass().getResource("/MyImage.gif")).getImage();
    
    Run Code Online (Sandbox Code Playgroud)

另一个注意事项:您可以使用多个此类资源文件夹来组织资源.在项目构建之后,它们都进入构建目标根"bin"文件夹.当然,您可以将项目导出为"Runnable Jar File",然后您可以独立运行应用程序,因为所有资源都会自动打包到您的jar文件中.


Boz*_*zho 12

创建一个resources文件夹并将它们放在那里.然后将该文件夹标记为"源文件夹"(右键单击 - >构建路径 - >用作源文件夹)

  • +1.我不喜欢在src文件夹中拥有资源(图像或其他) - 他们没有理由去那里. (3认同)

Jon*_*eet 6

您不应该将它们放在bin目录中 - 这应该被视为仅输出目录,可以随时擦除.

如果您使用Class.getResource()ClassLoader.getResource()(或类似的API),那么我希望它可以从src目录或构建路径上的任何其他内容中正常工作,假设默认设置.您应该检查设置.

构建路径上文档:

源文件夹中存在的资源将复制到输出文件夹,除非Java>编译器>构建首选项页面中的设置指定资源已过滤.输出文件夹是按项目定义的,除非源文件夹指定了自己的输出文件夹.

因此,您需要检查"构建"首选项页面,看看您是否过滤掉了资源.如果在构建之后查看bin目录,您应该能够看到它们.

请注意,您可能希望将资源放在他们自己的目录中仅用于组织目的 - 这很好,您可以在src目录中或通过在构建路径上创建另一个目录来执行此操作.

  • 此外,您可能需要刷新Eclipse的工作区`src`以注册(并复制到`bin`)图像文件. (2认同)