【问题标题】:Accessing documents packaged in a jar file访问打包在 jar 文件中的文档
【发布时间】:2010-12-14 18:17:39
【问题描述】:

我正在尝试获取打包为 jar 文件中的资源的文档的文件路径,以便我可以在 swing 应用程序中显示它。当我从 Eclipse 运行它时,我现在拥有它的方式是有效的,但是如果我将它导出到可运行的 jar 文件,我将无法访问打包在 jar 文件中的文档。 jar文件中的文档如何获取文件路径?

这是显示我如何尝试访问文档的代码行:

File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath());

【问题讨论】:

  • 您是否检查过document.pdf 是否在该位置的罐子内?
  • 是的,它就在那里。我修改了代码以使用 URL 而不是文件,如果现在可以使用。

标签: java executable-jar filepath


【解决方案1】:

JAR 文件中存在的唯一一种“文件路径”是相对于 JAR 根目录的路径。但在您的情况下,您似乎已经知道它(它是“/resources/documents/document.pdf”)。 JAR 文件中的文件没有可用于直接访问它们的路径,因为它们不存在于真实文件系统中。您需要使用 getResource() 或 getResourceAsStream() 来访问它们。我现在不记得在 Swing 中哪些类用于图像,但仔细观察这些类 - 它们应该具有接受诸如 InputStream 或 URL 之类的东西而不是文件路径的重载方法。

【讨论】:

  • 我使用了 getResourceAsStream()。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-04-03
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 2011-07-07
  • 2011-04-10
  • 1970-01-01
相关资源
最近更新 更多