web-dev-qa-db-fra.com

Existe-t-il un moyen rapide de supprimer un fichier d'un Jar / war sans avoir à extraire le jar et à le recréer?

J'ai donc besoin de supprimer un fichier d'un fichier jar/war. J'espérais qu'il y avait quelque chose comme "jar -d myjar.jar file_I_donot_need.txt"

Mais pour l’instant, le seul moyen de le faire à partir de ma ligne de commande Linux (sans utiliser WinRAR/Winzip ou l’équivalent linux) est de:

  • Faites "jar -xvf" et extrayez le
    compléter le fichier Jar
  • Supprimer le (s) fichier (s) dont je n'ai pas besoin
  • Renommez le fichier jar en utilisant "jar -cvf"

S'il vous plaît dites-moi il y a un moyen plus court?

95
kellyfj
Zip -d file.jar unwanted_file.txt

jar est juste un fichier Zip après tout. Certainement beaucoup plus rapide que décompresser/recompresser.

188
martona

Dans Java, vous pouvez copier toutes les entrées d'un fichier, à l'exception de celle que vous souhaitez supprimer. Vous devez donc effectuer une copie, mais vous n'avez pas besoin de créer les fichiers individuels.

Vous pouvez le faire en

  • créer un nouveau pot.
  • itérant si le pot que vous avez
  • copier l’entrée d’un pot à l’autre en ignorant les fichiers de votre choix.
  • fermez et remplacez le pot original si vous le souhaitez.
1
Peter Lawrey

Si vous souhaitez supprimer le fichier afin de ne pas signer le fichier JAR signé, vous pouvez probablement simplement réduire la taille du fichier .RSA. Ceci peut être accompli avec juste jar u. Voir https://stackoverflow.com/a/24678645/653539 . (Travaillé pour moi, bien que j'avoue que c'est bidouille.)

0
Tomáš Záluský