web-dev-qa-db-fra.com

Mise à jour du fichier .class dans le fichier jar

Je veux mettre à jour un .class fichier dans un jar avec un nouveau. Quelle est la façon la plus simple de le faire, en particulier dans l'IDE Eclipse?

43
penguru

Ce tutoriel explique en détail la mise à jour d'un fichier jar

jar uf jar-file input-file(s)

où 'u' signifie mise à jour.

61
Brian Agnew

Voulez-vous le faire automatiquement ou manuellement? Si manuellement, un fichier JAR est vraiment juste un fichier Zip, vous devriez donc pouvoir l'ouvrir avec n'importe quel lecteur Zip. (Vous devrez peut-être d'abord modifier l'extension.) Si vous souhaitez mettre à jour le fichier JAR automatiquement via Eclipse, vous pouvez consulter la prise en charge de Ant dans Eclipse et consulter la tâche Zip .

11
JasCav

Faites simplement glisser votre nouveau fichier de classe dans le fichier JAR en utilisant 7-Zip ou Winzip. Vous pouvez même modifier un fichier JAR inclus dans un fichier WAR à l'aide de l'icône du dossier parent, puis cliquer sur Ok lorsque 7Zip détecte que le fichier intérieur a été modifié.

10
Lastnico

Jar est une archive, vous pouvez remplacer vous-même un fichier dans votre gestionnaire de fichiers préféré (Total Commander par exemple).

6
silent
  1. Utilisez jar -xvf pour extraire les fichiers dans un répertoire.
  2. Apportez vos modifications et remplacez les classes.
  3. Utilisez jar -cvf pour créer un nouveau fichier JAR.
6
James Lim

Un fichier JAR est simplement un fichier .Zip déguisé. Le dossier compressé contient des fichiers .class.

Si vous êtes sur macOS:

  1. Renommez le fichier avec l'extension '.Zip'. par exemple. myJar.jar -> myJar.Zip.
  2. Décompressez le '.Zip' (double-cliquez dessus). Un nouveau dossier appelé "myJar" apparaîtra
  3. Recherchez et remplacez le fichier .class par votre nouveau fichier .class.
  4. Sélectionnez tout le contenu du dossier 'myJar' et choisissez 'Compresser x éléments'. NE FERMEZ PAS LE DOSSIER, SEULEMENT SON CONTENU

Divers - Compilation d'un seul fichier .class, avec référence à un fichier jar d'origine, sous macOS

  1. Créez un fichier myClass.Java contenant votre code.
  2. Ouvrez le terminal depuis Spotlight.
  3. javac -classpath originalJar.jar myClass.Java Ceci créera votre classe compilée appelée myClass.class.

À partir de là, suivez les étapes ci-dessus. Vous pouvez également utiliser Eclipse pour le compiler; il vous suffit de référencer le fichier jar d'origine en cliquant avec le bouton droit de la souris sur le projet, "Chemin de construction" -> "Ajouter des archives externes". À partir de là, vous devriez pouvoir le compiler en tant que jar et utiliser la technique Zip ci-dessus pour récupérer la classe à partir du jar.

2
Toby Mellor

Étapes de haut niveau:

Setup the environment
Use JD-GUI to peek into the JAR file
Unpack the JAR file
Modify the .class file with a Java Bytecode Editor
Update the modified classes into existing JAR file
Verify it with JD-GUI

Référez-vous au lien ci-dessous pour les étapes détaillées et les méthodes pour le faire,

https://www.talksinfo.com/how-to-edit-class-file-from-a-jar/

0
user2266614

Vous pouvez trouver le code source de n'importe quel fichier .jar en ligne, importer le même projet dans votre IDE avec les configurations de base. Apportez les modifications nécessaires au fichier .Java et compilez-le pour les fichiers .class.

Une fois la compilation terminée, vous devez extraire le fichier jar, remplacer l’ancien fichier .class par un nouveau.

Et utilisez la commande ci-dessous pour reconstruire le fichier .jar

Jar cf test.jar *

Note: J'ai fait tellement de fois que cela change dans notre projet, j'espère que vous le trouverez utile.

0
hari

Modification du fichier properties/my_app.properties dans le fichier jar:

"Zip -u /var/opt/my-jar-with-dependencies.jar properties/my_app.properties". En gros, "Zip -u <source> <dest>", où dest est relatif au dossier d’extrait de jar.

0
Shashi Ranjan

1) vous pouvez extraire le fichier dans un dossier appelé 

jarname.jar

puis remplacez le fichier dans le dossier, pratique si vous mettez beaucoup à jour la classe pendant le débogage

2) vous pouvez extraire le pot, remplacer le fichier, puis le piquer à nouveau

3) Ouvrez le bocal avec 7 Zip et faites glisser votre nouvelle classe pour copier l’ancienne.

0
Craig Angus