可运行的JAR缺less图像/文件(资源)

当我从eclipse将我的代码作为可运行的JAR导出时,即使它们实际上位于JAR中,我也将所有设置为抓取的文件(如button图像和其他文件)都丢失。 我已经在文件前面添加了getClass().getResource ,但是当我尝试运行JAR时甚至没有发生任何build议?

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

  1. Project Explorer Tree右键单击您的Project
  2. 转到New -> Source Folder ,然后提供任何NameSource Folder
  3. 现在手动添加你的东西到这个由你创build的Source Folder ,就像如果你想添加图片,然后创build一个New Folder ,通过手动访问这个Source Folder通过File System
  4. 将此New Folder命名为images并将您的图像复制到此Folder
  5. 现在返回到Eclipse IDE并通过右键单击项目浏览器Refresh项目,在这里您可以在刷新后看到添加的内容。

现在为了访问,说任何图像,你会使用。

 getClass().getResource("http://img.dovov.comyourImageName.extension"); 

这将返回一个URL对象。 请记住第first forward slash ,在这种情况下,因为在源文件夹内的任何东西都可以用这个简单的术语来访问。 现在,当你运行你的项目时,这个源文件夹的内容将被自动添加到bin文件夹中,当你创build一个Runnable Jar的时候,你的源文件夹中的东西就可以被访问了。

path需要适合资源。

对于“foo.gif”位于jar的根部,您必须使用“/foo.gif”来引用它。

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

试着把文件夹放在jar里,就像你在程序中得到它们一样。 将相同的资源放在项目中的相同位置。 这个jar会像编译器那样引用它们。

你需要像这样使用stream – this.class.getClassLoader()。getResourceAsStream(“test.jpg”)来获取图像,并确保图像出现在你引用的jar中。

正如你所说,你只需要在你的工程资源pipe理器树中创build一个源文件夹。 该文件夹内的所有文件将位于根项目文件夹中。

要引用它们,你必须写下你的项目名称斜线的文件名称:

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

我希望这有帮助!