我有一个目录update,其结构与JAR文件Application.JAR相同。现在我想(以编程方式(用update文件夹中的文件替换Application.JAR中的所有文件。比方说,我有以下目录和jar文件的结构:
Application.jar / update
- TestDir
- text2.txt
- text1.txt
当使用jar uf Application.jar update/TestDir/text2.txt
时,它会在Application.jar中创建一个新目录-update,并且它将从那里全部添加,当使用绝对路径时更糟(在jar文件中创建整个C:\结构(。如何保留结构,有没有办法将pathToUpdate\update标记为根?我知道有-C参数,但我不明白。
您有两个选项。
-
首先将工作目录更改为
update
,以便"更新"文件的相对路径与您在jar中想要的路径相匹配:cd update jar uf ../Application.jar TestDir/text2.txt
-
使用-C选项:
jar uf Application.jar -C update TestDir/text2.txt
-C选项可能需要执行以下操作:jar Application.jar -C update update/TestDir/text2.txt
。
总的来说,我建议第一种选择;一旦您开始使用例如*
等,第二个问题就会变得棘手。