我有一个JAR文件,其中包含使用外部模型文件的API。我想将模型文件包含在JAR本身中,以便更容易用于其他开发人员。 API只接受File对象,有没有办法做到这一点?我已经尝试了以下内容,但它们都失败了:
我想一个选项是使用getResourceAsStream并将文件移动到HDD上的永久位置,但是,我不喜欢这个选项。必须有更好的东西,任何想法?
答案 0 :(得分:8)
.jar文件中的资源不是操作系统可以通过普通文件访问API直接访问它们的文件。
由于java.io.File
恰好代表了那种文件(即看起来像操作系统的文件),它不能用于引用.jar文件中的任何内容。
可能的解决方法是将资源提取到临时文件,并使用File
引用该文件。
请注意,通常会尝试处理文件的API来处理InputStream
/ OutputStream
,以便允许这种操作成功。