So entfernen Sie die Klassendatei in der .jar-Datei und ändern sie mit meiner eigenen Implementierung [duplizieren]

8

Also, ich habe eine Drittanbieter-Bibliothek, die eine .jar-Datei ist. Es gibt einige Klassen in diesem Jar. Das Problem ist, dass es in dieser Klasse einen Fehler in dieser .jar gibt. Ich weiß es, weil ich die JAR-Datei dekompilieren kann, um den Java-Code zu betrachten, was ich ziemlich sicher bin, dass die 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.

    
Agung Pratama 29.05.2013, 05:26
quelle

3 Antworten

7

Es gibt mehrere Möglichkeiten, dies zu tun:

  1. Versuche winrar zu benutzen. Sie können Ihr jar darin öffnen und das Verzeichnis mit der Klassendatei erkunden. Sie können Klassendateien löschen und hinzufügen.

  2. Wenn Sie das Glas nicht verwenden möchten, dann mögen Sie das:

Extrahiere 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 Jar erneut mit dem folgenden Befehl

  

jar -cvf yourjar.jar directoryofexploderjar /

    
Juned Ahsan 29.05.2013 05:36
quelle
1
  1. Erweitern Sie die Klasse und überschreiben Sie die Methode zum Entfernen des Fehlers

  2. Verwenden Sie JDEC, um die Klasse zu dekompilieren und zu ersetzen ( Ссылка )

Igor S. 29.05.2013 05:29
quelle
0

Schreiben Sie Ihre eigene Klasse in das gleiche Paket wie die ursprüngliche, stellen Sie sicher, dass sich Ihre Klassen vor dem 3rd-Party-Jar im Java-Klassenpfad befinden. Auf diese Weise überschreiben Sie die ursprüngliche Version, der Klassenlader lädt Ihre Klasse.

    
Evgeniy Dorofeev 29.05.2013 05:41
quelle

Tags und Links