我为用java编写的软件创建了新模块。该软件从jar文件运行。我的类正在扩展该软件中的类。我想写一个插件,它将新类添加到jar文件中。我知道如何将jar文件解压缩到目录并使用java.util.jar包将它们添加到jar文件中,但由于要从文件中提取大量文件,是否可以在不提取文件的情况下添加新类以某种方式直接到文件夹。
答案 0 :(得分:13)
您可以使用以下命令
jar uf foo.jar foo.class
答案 1 :(得分:6)
您的问题表明您希望使用命令行jar
工具以编程方式执行此操作,不。
从文档中看来,您至少需要从现有JarInputStream
获取JarFile
,使用getNextJarEntry
对条目进行迭代,然后写入{{3使用条目,还为每个新文件使用新的JarOutputStream
对象添加自己的新文件。
JarEntry
用于以编程方式从头开始编写jar的示例代码,这应该很好地扩展到您的案例,区别在于大多数JarEntry
对象将来自JarInputStream
。
答案 2 :(得分:5)
jar uf jar-file input-file(s)
允许在jar中添加new files/update现有文件而不提取。