Modifiant le code de la classe à partir des fichiers jar
Comment puis-je lire (charge) de la classe java à partir des fichiers jar, ajouter un peu de code pour la classe, puis de remettre le pot?
J'ai besoin d'écrire un script (code java), qui fait toutes ces choses. Étapes de je pense sont:
1. Lire le pot et obtenir l'inscription avec le nom de la classe en utilisant des méthodes de java.util.jar package
2. La charge de cette classe, le tableau de la classe, de les changer
3. Peut-être compiler le code pour appliquer les modifications
4. Mettre le renouvellement de la classe pour le fichier jar
Je ne sais pas comment faire 2e et 3e étapes de java.
Je pensais à écrire de la nouvelle classe java qui étend cette classe et de modifier le tableau, mais ce tableau est déclarée comme public static final, c'est pourquoi je ne peux pas le changer. Ou je me trompe et il y a un moyen de changer le tableau par l'extension de la classe?
OriginalL'auteur user1574866 | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Un pot est juste un fichier ZIP, de sorte que vous pouvez l'extraire avec n'importe quel gestionnaire d'archives comme 7-ZIP. Il contiendra les fichiers de classe, qui sont compilés les fichiers Java. Vous avez besoin d'un Java decompiler de lire et de modifier le bytecode.
OriginalL'auteur Sjoerd
Extrait -> Décompiler -> Ajouter un code -> Créer Pot
OriginalL'auteur Baz
La meilleure solution serait d'utiliser le POT dans votre code et étendre la classe (si la classe le permet).
Si vous ne pouvez pas, le POT de classe est en fait une archive ZIP. Vous pouvez renommer x.jar pour x.zip et extraire le contenu:
Ici vous avez plus d'informations (voir en particulier les OscarRyz de la réponse):
Comment recompiler un fichier jar?
OriginalL'auteur mihaisimi