我正在使用Java进行项目,有时我的所有图像都随机地从项目的bin文件夹中消失。它变得非常烦人,因为每次发生时我都必须再次放置所有东西。有人告诉我,我不应该把我的额外文件放在bin中,而是放在src中。 但是如果我将它们放在src中,eclipse就不会读取我的图像,好像它们不存在一样。 为什么会这样? 感谢。
答案 0 :(得分:12)
创建一个resources
文件夹并将其放在那里。然后将该文件夹标记为“源文件夹”(右键单击 - >构建路径 - >用作源文件夹)
答案 1 :(得分:12)
请按照以下两个步骤操作。在Eclipse Kepler中为我工作得很好。
将您的图像或其他资源文件带入Java项目
我。鼠标右键单击您的Java项目并执行:New -> Source Folder
。在这个例子中,我将我的文件夹称为“res”。
II。转到文件浏览器,您应该在Java项目的根文件夹下看到这个“res”文件夹。现在将图像和其他资源文件复制或移动到其中。
III。现在转到Eclipse并右键单击此“res”文件夹并执行:刷新。您应该会看到这些文件显示在其中。
IV。现在构建项目,您应该看到您的资源文件被复制到构建目标“bin”文件夹中。
现在在您的课程中(例如您自己的JFrame课程,如下面示例代码中的this
所示)您可以访问资源文件并注意前导“ / “表示相对于二进制根的文件位置:
Image img = new ImageIcon(this.getClass().getResource("/MyImage.gif")).getImage();
另一个注意事项:您可以使用多个此类资源文件夹来组织资源。在项目构建之后,它们都进入构建目标根“bin”文件夹。当然,您可以将项目导出为“Runnable Jar File”,然后您可以独立运行应用程序,因为所有资源都会自动打包到您的jar文件中。
答案 2 :(得分:6)
您不应将它们放在bin
目录中 - 这应该被视为仅输出目录,可以随时擦除。
如果您使用Class.getResource()
或ClassLoader.getResource()
(或类似的API),那么我希望它可以在src
目录或构建路径上的任何其他内容上正常工作,假设默认设置。您应该检查设置。
源文件夹中存在的资源被复制到输出文件夹,除非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 。