相关疑难解决方法(0)

使用jar命令更新特定目录中JAR内的文件

所以我一直在高低寻找答案,显然没有找到满意的答案.

问题是我想在JAR中更新JAR(或任何文件),但是文件位于文件夹结构中,我希望避免在JAR之外再现,以便我可以更新它.

例:

Foo.jar (root directory)
/
|->/folder1
|
|->/folder2
|
|->/foo
    |
    |-->/bar
         |
         |---->/baz
               |
               |------>file_to_update.jar
Run Code Online (Sandbox Code Playgroud)

所以,如果我想使用jar命令更新它,我必须首先在JAR之外创建相同的文件夹结构然后执行

jar -uf Foo.jar -C foo/bar/baz/file_to_update.jar
Run Code Online (Sandbox Code Playgroud)

但是我想避免创建这个文件夹结构,因为对于某些文件它可能非常深,而且因为我可能需要更新整个容器JAR中的选定文件,所以我不想创建具有特定结构的这么多文件夹所以jar命令可以更新它们.

换句话说,我想告诉jar命令使用特定源目录中的特定源文件更新特定目标目录中的特定目标文件.

就是这样的

jar -uf Foo.jar -sourceFile /x/y/z/filetoupdate -destFile /a/b/c/filetoupdate 
Run Code Online (Sandbox Code Playgroud)

(我知道这种语法不起作用,只是为了举例说明我的需要).

可以这样做吗?当jar命令可以找到匹配的东西时,我绝对需要模仿整个文件夹结构,因为我可能需要更新文件夹结构中100个文件夹深度的文件,这对我来说非常奇怪..仅仅为了更新文件而重现过于复杂.

此外,我知道可以使用常规的ZIP实用程序,但是我在Linux中可用的那个实际上并没有更新文件,即使它说它已经完成(重新打开jar时,它的旧版本完好无损),现在我不能去寻找另一个(公司政策,没时间,测试问题,你的名字).

最后,如果我可以从命令行执行此操作,则意味着我可以创建批处理文件来更新大量特定文件,而无需创建文件夹结构.

我忘了说我也想避免不得不解开,更新,重新调整整个事情,因为这个JAR可以上升到2GB,所以这需要一段时间来做到这一点,基本上,添加一点资源文件到我的巨大的JAR.

非常感谢任何帮助!

java jar

30
推荐指数
2
解决办法
5万
查看次数

Java:在运行时将类添加到Jar存档

我想在运行时将一些编译类(.class文件)添加到当前Jar文件中的目录(包)中
我该怎么做?

谢谢

java runtime jar

3
推荐指数
1
解决办法
3243
查看次数

标签 统计

jar ×2

java ×2

runtime ×1