【问题标题】:NoSuchFileException in .jar but not in Eclipse.jar 中的 NoSuchFileException 但在 Eclipse 中没有
【发布时间】:2012-09-04 07:35:20
【问题描述】:

当我在 Eclipse 中编译和运行我的程序时,它会毫无例外地运行。但是当我将它导出到可运行的 jar 或普通 jar 时,它找不到我的设置文件。

我的路径是:

String path= "src/settings/settings.ini";

在 Eclipse 中它运行时没有异常,但在 jar 中,它会立即抛出异常。

如何让 jar 像在 eclipse 中一样工作?

【问题讨论】:

标签: java eclipse jar embedded-resource nosuchfileexception


【解决方案1】:

在 jar 中,文件不再是物理文件,因此您可能需要将其作为 Stream 读取

getClassLoader().getResourceAsStream("settings/settings.ini");

考虑到 settings.ini 位于指定路径的类路径(运行时)下

【讨论】:

  • 我发现 URL 的 getResource(String) 不仅对于访问 embedded resource 更可靠(因为返回的 InputStream 通常不可重新定位),而且键入时间也更短。 ;)
【解决方案2】:

如果 ini 文件位于 jar 存档中,请按如下方式读取:

inputstream = getClass()
          .getClassLoader()
          .getResourceAsStream("settings/settings.ini");

否则,如果它位于您的 jar 存档之外,您应该将您的 ini 文件移动或复制到 ./settings/settings.ini 中(相对于您应用程序的当前工作目录)。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    相关资源
    最近更新 更多