Runnable JAR缺少图像/文件(资源)

时间:2012-01-22 10:15:08

标签: java eclipse jar

当我从eclipse将我的代码导出为runnable JAR时,即使它们实际上在JAR中,我设置它的所有文件都会丢失,例如按钮图像和其他文件。我在文件前面添加了getClass().getResource但是当我尝试运行JAR时,什么都没发生,有什么建议吗?

5 个答案:

答案 0 :(得分:22)

好像你没有把你的东西放在正确的意义上。为了使其工作,请按照下列步骤操作:

  1. 右键单击Project中的Project Explorer Tree
  2. 转到New -> Source Folder,然后向Name提供Source Folder
  3. 现在手动将您的内容添加到由您创建的Source Folder,就像您要添加图片然后制作New Folder一样,手动访问此Source FolderFile System }。
  4. 将此New Folder命名为images,并将您的图片复制到此Folder
  5. 现在从项目浏览器返回Eclipse IDE并Refresh Project,右键单击您的项目,此处您可以在刷新后立即查看添加的内容。
  6. 现在,为了访问,比如任何图像,您将使用。

    getClass().getResource("/images/yourImageName.extension");
    

    将返回一个URL对象。在这种情况下,请记住first forward slash,因为在此帮助下访问源文件夹中的内容更简单。现在,当您运行项目时,此源文件夹的内容将自动添加到bin文件夹中,当您创建Runnable Jar时,可以按原样访问源文件夹中的内容。

答案 1 :(得分:1)

路径需要适合资源。

如果“foo.gif”位于jar的根目录,则必须使用“/foo.gif”引用它。

如果程序在完成清理和重建后正常工作,但作为jar失败,则很可能没有包含在jar中的文件。

答案 2 :(得分:0)

尝试将文件夹放入jar中,方法与在程序中获取文件夹相同。将相同的资源放在项目中的相同位置。 jar将以与编译器相同的方式引用它们。

答案 3 :(得分:0)

你需要使用像这样的流来获取图像 - this.class.getClassLoader()。getResourceAsStream(“test.jpg”)并确保图像存在于您引用的jar中。

答案 4 :(得分:0)

nIcE cOw所述,您只需在Project Explorer Tree中创建一个Source Folder。 该文件夹中的所有文件都将位于根项目文件夹中。

要引用它们,您必须将项目名称写为斜杠文件名:

getClass().getResource("ProjectName/image.extension");

我希望这有帮助!