在jar文件夹中创建文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jar文件夹中创建文件相关的知识,希望对你有一定的参考价值。

我有一个jar文件abc.jar 它有一些特定的代码在同一个jar文件名为temp的文件夹中创建一个文件。 喜欢

createFile()

现在我想将abc.jar包含到我的其他Web项目中。哪个应该调用此函数createFile()并相应地创建文件。 那么有没有办法在jar文件中创建文件。 我知道jar总是被压缩和只读。 但仍然有相同的工作,对我来说将是很大的帮助。 :)

答案

要读取abc.jar中的文件,可以使用ClassLoader.getResource(),但我不认为Java提供了类似的工具来向jar添加文件(出于安全目的)。

jar文件只是一个zip文件,所以如果你真的需要,你可以将它解压缩到一个临时目录,添加文件,然后用你的新文件重新创建jar。但是,我认为这不会达到您正在寻找的效果 - 无论您以这种方式添加到jar文件中的文件都无法用于正在运行的代码,因为原始jar(没有添加的文件)已经加载。

另一答案

您可以提取完整的Jar,将文件添加到解压缩的目录结构中,然后从目录结构中重新创建jar。

例如,您可以使用ZipInputStreamZipOutputStream来实现此目标。此外,与ZipFileZipEntry相关的课程可能会有所帮助。

据我所知,直接添加文件是不可能的。

另一答案

看看TrueVFS:http://truevfs.net/(或其前身TrueZip https://christian-schlichtherle.bitbucket.io/truezip/)。它提供对归档文件的虚拟文件系统访问。

以上是关于在jar文件夹中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IntelliJ IDEA 中创建 .jar 文件或导出 JAR(如 Eclipse Java 存档导出)? [复制]

如何在文件树中创建带有入口点的jar文件?

如何在片段中创建选项卡的示例?

在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?

Java 在Word中创建表格

如何膨胀由 Android Studio 向导在 Activity 中创建的片段(列表)?