如何在不重新打包整个jar的情况下更新jar中的一个文件?
我有一个名为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的东西,我必须使用命令行执行此操作。
-C
正在更改本地目录,并在那里寻找hi.png
。 它无法控制您尝试将其注入JAR文件的位置。
我会尝试创建一个名为images
的新目录,将你的本地hi.png
移动到其中,使images
成为当前工作目录的子目录,然后运行:
jar uf myfile.jar images\hi.png
最简单的方法是使用7-zip软件。 对于
-
编辑文件:
- 打开jar文件7-zip | 打开档案
- 转到文件,例如/Meta-Inf/xyz.conf
- 单击鼠标右键并选择“ 打开内部 ”选项
- 编辑文件并保存文件
- 关闭7拉链控制台,它已经完成。
-
用于添加/替换/删除文件。
- 按照前两个步骤,直到到达所需的文件夹。
- 删除 :删除文件
- 添加 :将文件拖放到7-zip控制台。
- 关闭控制台,它就完成了。
你可以使用jar -uf sample.jar [path in jar file]target-file
如果您想编辑文本文件,可以直接使用vim
。
(假设您已unzip
,例如yum install -y unzip
在CentOS上yum install -y unzip
)
vim my.jar