Entonces necesito eliminar un archivo de un archivo jar / war. Esperaba que hubiera algo como "jar -d myjar.jar file_I_donot_need.txt"
Pero en este momento, la única forma que puedo ver de hacer esto desde mi línea de comandos de Linux (sin usar WinRAR / Winzip o el equivalente de Linux) es
- Haga "jar -xvf" y extraiga el
archivo Jar completo - Eliminar los archivos que no necesito
- Rejar el archivo jar usando "jar -cvf"
Por favor, dime que hay un camino más corto.
./myscript.sh -d <list of files>
Respuestas:
jar es solo un archivo zip después de todo. Definitivamente mucho más rápido que descomprimir / recomprimir.
fuente
zip
y, en este caso, es importante especificar el formato de archivo:7z d -tzip file.jar dir/unwanted_file.txt
zip -d file.jar unwanted_folder/
En Java, puede copiar todas las entradas de un archivo jar excepto la que desea eliminar. es decir, tiene que hacer una copia pero no necesita crear los archivos individuales.
Puedes hacer esto por
fuente
En caso de que desee eliminar el archivo para cancelar la firma del jar firmado, probablemente pueda hacer que el archivo .RSA sea de tamaño cero. Esto se puede lograr con solo
jar u
. Consulte https://stackoverflow.com/a/24678645/653539 . (Funcionó para mí, aunque admito que es un truco).fuente