用文件夹中的文件替换jar中的文件

Replacing files in jar by files in folder

我有一个目录 update,其结构与 JAR 文件相同 Application.jar。现在我想(以编程方式)用更新文件夹中的文件替换 Application.jar 中的所有文件。假设我的目录和 jar 文件都具有以下结构:

Application.jar / update
    - TestDir
        - text2.txt
    - text1.txt

当使用 jar uf Application.jar update/TestDir/text2.txt 时,它会在 Application.jar 中创建一个新目录 - 更新 - 并且将从那里添加所有内容,使用绝对路径时更糟(创建整个 C:\ 结构在 jar 文件中)。我怎样才能保留结构,有什么方法可以将 pathToUpdate\update 标记为根吗?我知道有-C参数,但是我没看懂

你有两个选择。

  1. 首先将工作目录更改为update,以便'update'文件的相对路径与您在jar中想要的相匹配:

    cd update
    jar uf ../Application.jar TestDir/text2.txt
    
  2. 使用-C选项:

    jar uf Application.jar -C update TestDir/text2.txt
    

-C 选项可能要求您执行以下操作:jar Application.jar -C update update/TestDir/text2.txt

一般来说,我建议第一种选择;一旦你开始使用例如第二个变得棘手*