9

我为用 java 编写的软件创建了新模块。该软件是从 jar 文件运行的。我的课程正在扩展该软件中的课程。我想编写一个插件,将新类添加到 jar 文件中。我知道如何将 jar 文件提取到目录并使用 java.util.jar 包将它们添加到 jar 文件中,但是由于要从文件中提取很多文件,是否可以在不提取文件的情况下添加新类到文件夹,以某种方式直接。

4

3 回答 3

16

您可以使用以下命令

jar uf foo.jar foo.class
于 2012-08-03T18:19:13.990 回答
7
jar uf jar-file input-file(s)

将允许在 jar 中添加新文件/更新现有文件而无需提取。

于 2012-08-03T18:17:56.217 回答
7

您的问题表明您希望以编程方式执行此操作,而不是使用命令行jar工具。

从文档看来,您至少需要JarInputStream从现有的中获取 a JarFile,使用 迭代条目getNextJarEntry,并使用条目写入 a ,还使用每个新文件的新对象JarOutputStream添加您自己的新文件。JarEntry

是以编程方式从头开始编写 jar 的示例代码,这应该很好地扩展到您的情况,不同之处在于大多数JarEntry对象将来自JarInputStream.

于 2012-08-03T18:29:27.630 回答