因此,我一直在寻找一个高低的答案,显然找不到令人满意的答案。
问题是我想在JAR内更新JAR(或与此相关的任何文件),但是所说的文件在文件夹结构内,我想避免在JAR之外重现,以便我可以对其进行更新。
例:
Foo.jar (root directory)
/
|->/folder1
|
|->/folder2
|
|->/foo
|
|-->/bar
|
|---->/baz
|
|------>file_to_update.jar
因此,如果要使用 jar 命令更新此文件,则必须先在JAR外部创建相同的文件夹结构,然后再执行
jar -uf Foo.jar -C foo/bar/baz/file_to_update.jar
但是,我想避免创建此文件夹结构,因为对于某些文件而言,它可能很深,而且因为我可能需要在整个容器JAR中更新选定的文件,所以我不想仅创建一个具有特定结构的文件夹因此
jar 命令可以更新它们。
换句话说,我想告诉 jar 命令使用特定源目录中的特定源文件来更新特定目标目录中的特定目标文件。
即像
jar -uf Foo.jar -sourceFile /x/y/z/filetoupdate -destFile /a/b/c/filetoupdate
(我知道这种语法不起作用,只是为了说明我所需要的)。
能做到吗?令我感到非常奇怪的是,当 jar
命令可以找到匹配的东西时,我绝对需要模仿整个文件夹结构,因为我可能需要更新深100个文件夹的文件夹结构中的文件。仅仅为了更新文件而复制就太复杂了。
另外,我知道可以使用常规的ZIP实用程序,但是我在Linux中可以使用的实用程序即使它说可以了也不会更新文件(重新打开jar时,它具有完整的旧版本),现在我不能再去找另一个了(公司政策,没有时间,测试问题,你叫它)。
最后,如果可以从命令行执行此操作,则意味着可以创建批处理文件来更新许多特定文件,而无需创建文件夹结构。
我忘了说了,我也想避免不必解压缩,更新,重新打包整个内容,因为这个JAR可以上升到2GB,所以花一点时间才能做到这一点,基本上是在我的计算机上添加一些资源文件。巨大的JAR。
在这方面的任何帮助,我们将不胜感激!
4129445:用于增量更新
Sun /
Oracle错误数据库中的ZIP文件的API要求在Java
api中实现此功能。
根据评估:
“很容易同情那些希望修复此错误的人。也许更容易同情那些已经无意中覆盖了正在运行的JVM的JAR文件的人。”
和
“如果jar和zip
API从一开始就允许可变的zip文件,那就太好了。但是在这一点上,可能会引入Java的jar和zip文件的可变性(或者说,增加对它们进行突变的便利性)更多难以调试的问题。”
问题内容: 我正在创建一个Python脚本,在其中执行UNIX系统命令。我有一个名为Binaries.war的战争档案,它位于名为Portal.ear的耳朵档案中 Portal耳朵文件位于/ home / foo / bar / 将Binaries.war文件从/home/foo/bar/Portal.ear存档中解压缩到运行脚本的当前目录中。 如何仅使用一个命令指定要提取到的目标目录?我想做这样
问题内容: 我正在创建一个Python脚本,在其中执行UNIX系统命令。我有一个名为Binaries.war的战争档案,它位于名为Portal.ear的耳朵档案中 Portal耳朵文件位于/ home / foo / bar / 将Binaries.war文件从/home/foo/bar/Portal.ear存档中解压缩到运行脚本的当前目录中。 如何仅使用一个命令指定要提取到的目标目录?我想做这样
问题内容: 我想用一个新的 jar* 更新一个 .class 文件。什么是最简单的方法,尤其是在Eclipse IDE中? * 问题答案: 本教程详细介绍了如何更新jar文件 其中“ u”表示更新。
我有一些照片在一个文件夹里。图像可以很容易地从第一个文件夹转移到第二个文件夹。到目前为止,一切似乎都是ok的,但是如何将一个图像从第一个目录传递到第二个目录,这与已经存在于第二个文件夹中的图像是相同的呢?简单来说:如何更新或覆盖第二个文件夹中的文件?非常感谢您的帮助!
问题内容: 我正在用JAVA制作游戏,我想在jar中的某个目录中列出文件列表,这样我就可以确保列出要在游戏中使用的这些类的列表。 例如说我的罐子里有一个目录 我想 使用jar中另一个类的Java代码 获取该目录中所有.class文件的列表。 这样做的最佳代码是什么? 问题答案: 旧的Java1.4代码,但这会让您有一个主意:
问题内容: 我正在尝试从.jar文件中提取文件。我该如何使用命令行? 我正在运行Windows 7 问题答案: 从文档: 要从jar文件中提取文件,请使用,如下所示: 要仅从jar文件中提取某些文件,请提供其文件名: 该文件夹可能不适合您,在我的Windows分区上是: 除非的位置在您的路径环境变量中,否则您必须指定完整路径/从文件夹内部运行程序。 编辑: 这是另一篇文章,专门针对提取JAR:ht