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

时间:2011-08-27 20:43:42

标签: java eclipse file workspace

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

7 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:12)

请按照以下两个步骤操作。在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();
    
  3. 另一个注意事项:您可以使用多个此类资源文件夹来组织资源。在项目构建之后,它们都进入构建目标根“bin”文件夹。当然,您可以将项目导出为“Runnable Jar File”,然后您可以独立运行应用程序,因为所有资源都会自动打包到您的jar文件中。

答案 2 :(得分:6)

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

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

来自docs on the build path

  

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

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

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

答案 3 :(得分:0)

查看您的项目是否有一个“res”文件夹,它代表资源。如果是,则在该文件夹中应该有一个“Img”文件夹。你应该把它们放在那里。

答案 4 :(得分:0)

对于Eclipse,您可以直接在src文件夹(或其某些包)中创建文件夹。然后将图像文件复制并粘贴到创建的文件夹中。 如果您需要获得正确的路径,直到当前图像只使用Class.getResource("yourCreatedFolder/yourImage.someExtension")

答案 5 :(得分:0)

我遇到了同样的问题所以我只是在两个文件夹中过了图像' bin'和' src' 在我的情况下,我有这个代码:

Image image2 = new Image(getClass().getResourceAsStream("IMAGES/Main-icon.png"));

运行App,它将起作用

答案 6 :(得分:0)

我会将项目转换为Maven并执行 maven install