it-swarm.com.de

So entfernen Sie die Klassendatei in der JAR-Datei und ändern Sie sie mit meiner eigenen Implementierung

Ich habe also eine Drittanbieter-Bibliothek, die eine JAR-Datei ist. Es gibt einige Klassen in diesem Glas. Das Problem ist, dass es in dieser .jar einen Fehler in einer Klasse gibt. Ich kenne es, weil ich die JAR-Datei dekompilieren kann, um den Java-Code zu betrachten. Ich bin mir ziemlich sicher, dass diese Klasse die Quelle meines Programmfehlers ist.

Die Idee ist, ich lösche die Klasse und ersetze sie durch meine eigene Klasse, aber ich weiß nicht wie.

10
Agung Pratama

Es gibt mehrere Möglichkeiten, dies zu tun:

  1. Versuche winrar zu benutzen. Sie können Ihr Glas darin öffnen und das Verzeichnis durchsuchen, in dem sich die Klassendatei befindet. Sie können Klassendateien löschen und hinzufügen.

  2. Wenn Sie winrar nicht verwenden möchten, gehen Sie folgendermaßen vor:

Extrahieren Sie das Glas mit diesem Befehl

jar -xvf yourjar.jar

Es wird das Glas explodieren. Löschen Sie die alte Klassendatei und fügen Sie Ihre aktualisierte Klassendatei hinzu

Erstellen Sie das Glas mit dem folgenden Befehl neu

jar -cvf yourjar.jar Verzeichnis vonexploderjar /

12
Juned Ahsan
  1. Erweitern Sie die Klasse und schreiben Sie die Methode neu, um den Fehler zu beheben

  2. Verwenden Sie JDEC, um die Klasse zu dekompilieren und zu ersetzen ( http://jdec.sourceforge.net/ ).

1
Igor S.

Schreiben Sie Ihre eigene Klasse im selben Paket wie die ursprüngliche. Stellen Sie sicher, dass sich Ihre Klassen vor dem Jar der dritten Partei im Java-Klassenpfad befinden. Auf diese Weise überschreiben Sie die ursprüngliche Version, und der Klassenladeprogramm lädt Ihre Klasse.

0