我有一个名为myfile.jar的.jar文件。在这个jar文件里面是一个名为images的文件夹。在这个名为images的文件夹中,我有一个名为hi.png的图像。我想用该图像的新版本更新该图像,也称为hi.png。我不想从单个jar文件中提取所有文件然后重新打包它们,我只是想更新图像。所以,我像往常一样去命令行,键入几行代码,然后我执行以下命令:
jar uf myfile.jar -C images hi.png
我希望用这个命令做的是用新的hi.png替换旧的hi.png。但是,它给了我这个错误:
images\hi.png : no such file or directory
我该怎么做才能解决这个问题?
额外信息:我不能使用类似WinRAR的东西,我必须使用命令行执行此操作。
答案 0 :(得分:25)
-C
正在更改本地目录,并在那里寻找hi.png
。它无法控制您将其注入JAR文件的位置。
我会尝试创建一个名为images
的新目录,将本地hi.png
移动到该目录中,使images
成为当前工作目录的子目录,然后运行:
jar uf myfile.jar images\hi.png
答案 1 :(得分:7)
最简单的方法是使用 7-zip 软件。对于
编辑文件:
添加/替换/删除文件。
答案 2 :(得分:3)
您可以使用jar -uf sample.jar [path in jar file]target-file
答案 3 :(得分:0)
如果您想扩展Spring Boot App(例如出于e2e测试目的),那么这个对我有用:
Dockerfile的一部分:
COPY ./libs/*.jar /BOOT-INF/lib/
RUN jar u0f /app.jar /BOOT-INF/lib/*.jar
答案 4 :(得分:-1)
如果您想编辑文本文件,可以直接使用vim
完成。
(假设您有unzip
可用,例如CentOS上的yum install -y unzip
vim my.jar