web-dev-qa-db-fra.com

Comment supprimer un fichier de classe dans un fichier .jar et le modifier avec ma propre implémentation

J'ai donc une bibliothèque tierce, qui est un fichier .jar. Il y a des classes dans ce bocal. Le problème est qu'il y a un bogue dans une classe dans ce fichier .jar. Je le sais parce que je peux décompiler le fichier jar, pour regarder le code Java, ce dont je suis presque sûr, cette classe est la source de mon bogue de programme.

L'idée est que je supprime la classe et la remplace par ma propre classe, mais je ne sais pas comment.

10
Agung Pratama

Il y a plusieurs façons de le faire:

  1. Essayez d'utiliser winrar. Vous pouvez y ouvrir votre jar, explorer le répertoire contenant le fichier de classe. Vous pouvez supprimer et ajouter des fichiers de classe.

  2. Si vous ne souhaitez pas utiliser winrar, procédez comme suit:

Extraire le pot en utilisant cette commande

jar -xvf yourjar.jar

Il va exploser le pot. Supprimer l'ancien fichier de classe et ajouter votre fichier de classe mis à jour

Recréez le jar en utilisant la commande suivante

jar -cvf yourjar.jar directoryofexploderjar /

12
Juned Ahsan
  1. Classe d'extension et méthode de réécriture supprimant un bogue

  2. Utilisez JDEC pour décompiler et remplacer class ( http://jdec.sourceforge.net/ )

1
Igor S.

Ecrivez votre propre classe dans le même package que celui d'origine, assurez-vous que vos classes sont avant le fichier jar tiers sur le chemin de classes Java. De cette façon, vous allez remplacer la version d'origine, le chargeur de classes chargera votre classe.

0
Evgeniy Dorofeev