Originariamente inviato da LeleFT
Un file JAR è nientemeno che un file ZIP con estensione modificata.
Un file ZIP/JAR è un file unico di dati. I dati all'interno sono organizzati secondo gli standard forniti dal formato ZIP.
Non è una semplice directory di file sciolti, è un file unico con dentro dei dati illeggibili "ad occhio nudo" (sono scritti secondo un preciso formato e spesso sono "compressi").
Per questo non è adatto a contenere file che devono essere modificati. Va benissimo per contenere file da leggere, poichè l'operazione di lettura consiste solamente nel prendere i dati che ci sono e trasformarli al volo in dati non compressi, ma non altrettanto per scriverli, poichè la scrittura comporta il cambiamento di tutto l'archivio (quindi, si vanno ad intaccare anche zone che riguardano gli altri file dell'archivio, non solo quella del file che si è modificato).
Di conseguenza, l'unico modo per poter "modificare" un file presente in un JAR consiste in 3 operazioni:
1) Estrazione del file dall'archivio (decompressione e creazione del file fisico su disco)
2) Modifica del file (nel formato leggibile del TXT)
3) Re-inserimento del file nell'archivio JAR (con eventuale compressione e re-indicizzazione).
In pratica, non esiste nulla di pre-confezionato che faccia queste tre cose in modo trasparente (e non è nemmeno detto che sia possibile farle: che succede se sul disco non c'è sufficiente spazio per l'estrazione/decompressione del file?).
Ciao.