任何从JAR获取File对象的方法

我有一个JAR文件,其中包含使用外部模型文件的API。 我想将模型文件包含在JAR本身中,以便更容易用于其他开发人员。 API只接受File对象,有没有办法做到这一点? 我已经尝试了以下内容,但它们都失败了:

  • 使用class.getResourceAsStream()。 如果API接受了InputStream,这将起作用。
  • 解析类路径并尝试从条目构建(JAR将显示为app.jar)

我想一个选项是使用getResourceAsStream并将文件移动到HDD上的永久位置,但是,我不喜欢这个选项。 必须有更好的东西,任何想法?

.jar文件中的资源不是操作系统可以通过普通文件访问API直接访问它们的文件。

而且由于java.io.File恰好代表那种文件(即看起来像OS的文件),它不能用于引用.jar文件中的任何内容。

一种可能的解决方法是将资源提取到临时文件并使用File引用该File

请注意,通常应该编写尝试处理文件的API来处理InputStream / OutputStream ,以允许这种操作成功。