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?
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.
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 .
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é.
Jar est une archive, vous pouvez remplacer vous-même un fichier dans votre gestionnaire de fichiers préféré (Total Commander par exemple).
jar -xvf
pour extraire les fichiers dans un répertoire.jar -cvf
pour créer un nouveau fichier JAR.Un fichier JAR est simplement un fichier .Zip déguisé. Le dossier compressé contient des fichiers .class
.
Si vous êtes sur macOS:
.class
par votre nouveau fichier .class.Divers - Compilation d'un seul fichier .class, avec référence à un fichier jar d'origine, sous macOS
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.
É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/
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.
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.
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.