DOMANDA Decompilazione\compilazione di una libreria .jar -Java User-Defined Function Libraries (UFL)

Scripta14

Nuovo Utente
95
8
Buongiorno a tutti,

avrei bisogno di un suggerimento su come operare.
Sto lavorando su una libreria java che serve per gestire i barcode per i report di Crystal Report e ovviamente vorrei integrarla con altre funzioni non presenti nel .jar. La prima cosa che ho fatto è decompilare il file per vedere il contenuto, poi mi sono posto il problema di "riassemblarla" e vedere se funzionasse ancora, ma ovviamente non funzionava.
Le prove che ho fatto sono:
1) ho trovato un'applicazione online di decompilazione che mi ha creato un .zip con all'interno i file .java.
2) l'ho importato è mi ha creato le cartelle e sottocartelle del package con all'interno i file .java
3)Ho fatto un export Jar File e sostituito all'originale, ma ovviamente non ha funzionato

oppure il secondo tentativo è stato:
1)ho creato un nuovo progetto
2)ho creato una ad una le classi presenti nel .zip con gli stessi nome e copia\incolla del contenuto di ogni singolo file
3)Ho fatto un export Jar File e sostituito all'originale, ma ovviamente non ha funzionato

Nel progetto non riporto il contenuto dei vari file della cartella META-INF, perchè ho visto che inserendo o non inserendo questi file non funziona uqualmente. Inoltre in un documento che ho trovato sulla creazione delle Java User-Defined Function Libraries (UFL) non ne fa menzione come obbligatori.
La nuova esportazione mi crea un file di dimensioni minori rispetto all'originale.
Detto ciò, indipendentemente dal caso specifico, qualcuno mi saprebbe dire dove sto sbagliando? Sicuramente mi sta sfuggendo qualcosa.
Riporto dalla documentazione la parte successiva alla creazione delle varie classi.
"
With the function and library classes built, the UFL should now be
compiled for use with CR and the JRC. When compiling the UFL classes,
ensure that the CrystalFormulas.jar and CrystalReportingCommon.jar
have been added to the CLASSPATH"
Qui intendono per "compilato" l'export del Jar File, in quanto non è presente una classe principale con il metodo main. E' corretta la mia deduzione?

Grazie a tutti in anticipo per l'aiuto
 

Scripta14

Nuovo Utente
95
8
Buongiorno a tutti,

riporto la soluzione che ho trovato. Fondamentalmente quando già scritto andava bene, peccato dimenticassi di esportare anche le librerie utilizzate dalla mia libreria. Per coloro che si trovassero nella necessità di decompilare e ricompilare una libreria (e credo anche un progetto java) .jar, questi sono i passaggi che ho seguito:
1) ho scaricato l'applicazione JD-Gui.jar che serve per decompilare il file .jar;
2)sempre dall'applicazione jd-gui ho utilizzato l'opzione File-save as per esportare un .zip del file;
3)nella workspace di eclipse ho creato una cartella e all'interno ho estratto il file .zip;
4)Da eclipse ho creato un nuovo progetto con lo stesso nome della cartella creata nel workspace;
5)Ho aggiunge tramite la funziona "Add jar esterni" le librerie che mi servivano;
6)Come ultimo passaggio ho esporto nuovamente il file .jar tramite File-export-Java-Jar File(ovviamente l'ho chiamato con lo stesso nome della libreria originale).

Spero possa essere utile anche ad altri.
Se qualcuno volesse integrare quanto scritto, altrimenti si può chiudere. Grazie.
 
Ultima modifica:
  • Mi piace
Reazioni: BrutPitt e Mursey

Mursey

Super Moderatore
Staff Forum
Utente Èlite
8,237
5,668
Grazie per aver riportato la soluzione.
Lascio aperto per un pò e se non ci sono aggiunte chiudo.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!