2013-05-29 7 views
8

Quindi, ho una libreria di terze parti, che è un file .jar. Ci sono alcune classi in quel barattolo. Il problema è che c'è un errore in una classe in questo .jar. Lo so perché posso decompilare il file jar, per guardare il codice java, che sono abbastanza sicuro, che la classe è la fonte del mio bug del programma.Come rimuovere il file di classe nel file .jar e cambiarlo con la mia implementazione

L'idea è che cancello la classe e la sostituisco con la mia classe, ma non so come.

+0

Non è possibile estendere tale classe e sovrascrivere il suo metodo errato se è pubblico o creare una classe adattatore in base a tale classe? – NINCOMPOOP

+0

@TheNewIdiot sfortunatamente, non posso. Dal momento che l'altra classe ha un'alta dipendenza da quella classe. –

risposta

1
  1. Estendere classe e metodo di riscrivere la rimozione di bug

  2. Usa JDEC per decompilare e sostituire classe (http://jdec.sourceforge.net/)

+0

1. Non funziona se il metodo è privato. – SMKS

7

Ci sono diversi modi per farlo:

  1. Prova ad usare winrar. Puoi aprire il tuo jar, esplorare la directory contenente il file di classe. È possibile eliminare e aggiungere file di classe.

  2. Se non si desidera utilizzare il barattolo poi fare in questo modo:

Estrarre il barattolo con questo comando

jar -xvf yourjar.jar

Esploderà il barattolo. Eliminare il file di classe vecchia e aggiungere il file di classe aggiornato

Ricreare il vaso utilizzando il seguente comando

vaso -cvf yourjar.jar directoryofexploderjar/

+0

un altro approccio usando winzip/winrar apri il tuo jar, vai nella posizione della classe e trascina e rilascia la classe aggiornata, chiudi winrar/winzip e non c'è bisogno di esplodere jar e quindi jar di recesso ... –

+0

** jar uf <><< input-file (s) >> ** –

0

Scrivi la tua classe nello stesso pacchetto come quello originale, assicurati che le tue classi siano prima del jar di terze parti sul classpath java. In questo modo sostituirai la versione originale, caricatore di classi caricherà la tua classe.

Problemi correlati