任何从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
,以允许这种操作成功。