【发布时间】:2021-11-04 14:36:55
【问题描述】:
我有一个名为 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 之类的东西,我必须使用命令行来执行此操作。
【问题讨论】:
-
jar 文件也是 zip 文件,因此 zip tool 可以对其进行操作。如果你在任何非 Windows 上,你应该已经安装了它。 (我认为 MacOS 会有,但我无法验证。)
-
不确定你的设计是什么……但是 7Zip 有很好的命令行支持。请注意,jar 规范对 zip 的确切类型很挑剔。其次,如果这是基于 Web 的,您可能可以使用扩展的 jar。而且...如果它不是基于 Web 的(单个客户端),为什么不从 ./images/hi.png 加载图像。 TL;博士;用简单的方法来做,如果你在一个文件系统上交换使用文件系统。
-
您在哪个目录中执行此操作(以及相对于您的 cwd,images 和 hi.png 在哪里)?
-
@FakeRainBrigand 它在所有版本的 OS X 上
-
1) 我通常会使用 Ant 或其他构建工具来懒惰地构建 Jars(仅在资源更新时)2) 由于 Zip 对大多数媒体类型(至少声音、视频和图片),我通常也会把它们放在一个单独的罐子里,没有压缩。