Bobby C Bobby C - 4 months ago 49
Java Question

How do I update one file in a jar without repackaging the whole jar?

I have a .jar file called myfile.jar. Inside this jar file is a folder called images. Inside this folder called images, I have an image called hi.png. I want to update that image with a new version of that image, which is also called hi.png. I do not want to extract all of the files from the single jar file and then repackage them, I just want to update the image. So, I go to command line as usual, type a few lines of code, and then I do this command:

jar uf myfile.jar -C images hi.png


What I hoped to do with that command was to replace the old hi.png with the new hi.png. But, it gives me this error:

images\hi.png : no such file or directory


What do I do to fix this?

Extra info: I can not use something like WinRAR, I have to do this with command line.

Answer

-C is changing the local directory, and is looking for hi.png there. It's not controlling where you're trying to inject it into the JAR file.

I would try making a new directory called images, moving your local hi.png into that, making images a child directory of your current working directory, then just run this:

jar uf myfile.jar images\hi.png