Eclipse 的工作区:我应该将图像放在"src"还是"bin"文件夹中?



我在一个Java项目中工作,有时我所有的图像随机从项目的bin文件夹中消失。它变得非常烦人,因为每次它发生时我都要把所有东西重新放一遍。有人告诉我,我不应该把多余的文件放在bin中,而应该放在src中。但是如果我把它们放在src中,eclipse不会读取我的图像,就好像它们不存在一样。为什么会发生这种情况?谢谢。

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

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

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

    。鼠标右键单击您的Java项目并执行:New -> Source Folder。在这个例子中,我把我的文件夹命名为res。

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

    iii。现在转到Eclipse,右键单击这个"res"文件夹并执行:Refresh。您应该会看到这些文件显示在其中。

    第四。现在构建项目,你应该看到你的资源文件被复制到构建目标"bin"文件夹。

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

    Image img = new ImageIcon(this.getClass().getResource("/MyImage.gif")).getImage();
    

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

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

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

从构建路径上的文档:

源文件夹中存在的资源被复制到输出文件夹,除非Java> Compiler> Building首选项页面中的设置指定对资源进行过滤。输出文件夹是每个项目定义的,除非源文件夹指定了自己的输出文件夹。

所以你需要检查"Building"偏好页面,看看你是否过滤掉了资源。如果您在构建后查看bin目录,您应该能够看到它们。

请注意,出于组织目的,您可能希望将资源放在自己的目录中—这很好,您可以在src目录中或通过在构建路径上创建另一个目录来实现。

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

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

我也有同样的问题,所以我只是在'bin'和'src'文件夹中传递图像在我的例子中,我有这样的代码:

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

运行应用程序,它将工作

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

相关内容

最新更新