【问题标题】:Strange FileNotFoundException with Image带有图像的奇怪 FileNotFoundException
【发布时间】:2012-08-05 05:57:06
【问题描述】:

所以我为我的 Eclipse 视图插件制作了几张图片。完美运行。第二天我醒来,程序现在告诉我它再也找不到这些文件了。这些文件肯定还在我离开它们的同一个地方,而且我在 24 小时内没有碰过代码。我已经搞砸了一个小时,我什至不知道从哪里开始调试这个,因为我的程序昨天很好。

Sample.gif 在我插件的“icons”文件夹中。我已经尝试将它移动到 src 文件夹,但这也不起作用。

错误信息:

org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: sample.gif (No such file or directory))

代码(当我删除这一行和所有使用testImage的代码行时,插件再次运行):

Image testImage = new Image(null, "sample.gif");

任何人都知道这可能是什么原因造成的,或者我可以提供什么信息给别人指导我如何调试?

【问题讨论】:

  • 我基本上没有写任何代码。这是在一个带有 treeviewer 的 eclipse PDT 生成的视图插件上测试的。
  • 您必须自己尝试,然后才能发布您尝试过的问题并寻求解决方案。
  • 对不起...什么?只是为了确保我确实启动了一个空白的 Eclipse PDT 视图插件示例,并将该行代码作为全局变量放入我的视图类中,但它不起作用。

标签: java eclipse eclipse-plugin filenotfoundexception


【解决方案1】:

问题很可能与当前目录的位置有关。当您使用“sample.gif”之类的路径名时,打开文件时的正常行为是查看当前目录。如果您使用不同的当前目录运行应用程序,应用程序将在不同的位置查找文件。


然而,我对当前目录概念感到困惑

这里有一些描述这个概念的页面:

图片应该去哪里?

如果您只打算在 Eclipse 中运行您的应用程序,那么您可以将它们放在任何地方……并确保您的应用程序的 Eclipse 启动器配置将当前目录设置为一致的位置。 (您当前的问题很可能是由于应用程序启动器使用了父 Eclipse 的当前目录,这可能取决于您启动 Eclipse 时所处的位置……请参阅上面的链接页面。)

如果您打算以某种形式导出构建的应用程序以便用户可以在 Eclipse 之外使用它,那么答案取决于应用程序的性质以及它将如何安装在用户的计算机上。 (可能的解决方案是将图像放入应用程序的 JAR 文件中,并使用 ClassLoader.getResource 方法通过类路径定位它们。)

【讨论】:

  • 感谢您的回复。我正在从 Eclipse 本身运行程序(因为我正在构建一个插件)。我试过添加绝对文件路径,这确实有效。但是,我对当前的目录概念感到困惑;图片应该去哪里?我将它们放在图标文件夹中,该文件夹与我的 Eclipse 项目的 src 文件夹处于同一级别。我也将它们直接放在我的代码实际所在的 src 文件夹中。都不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多