Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-09-2007, 17:25   #1
asdf
Senior Member
 
Iscritto dal: Jul 2002
Messaggi: 414
[JAVA] analizzare il contenuto di un jar a runtime

Ciao.
volevo chiedervi in che modo posso analizzare (a runtime) il contenuto del file jar che sto eseguendo (o di un altro file jar).

Infatti vorrei estrarre alcune file dal jar che sto eseguendo, ma riesco a farlo solo se gli indico io il nome del file da estrarre. Il problema è che vorrei farlo senza dovergli indicare tutti i file ma facendogli estrarre automaticamente tutti i files contenuti in una sottodirectory del file jar.

Il metodo (che mi funziona) che uso per estrarre il singolo file è il seguente (ha il problema che estrae un singolo file quindi devo specificare i file da estrarre all'interno del codice):
Codice:
    /** Estrae un file dal file jar mettendolo nella directory SETTINGSDIR */
    private void extractSetting(String fileName){
        //estraggo dal file .jar i .vcf se non sono già presenti
        ClassLoader jarFile=getClass().getClassLoader();
        try {
            //creo la directory che conterrà i settaggi
            if(!new File(SETTINGSDIR).exists()) new File(SETTINGSDIR).mkdir();

            //se il settaggio non c'è già lo estraggo
            if(!new File(SETTINGSDIR+fileName).exists()){
                InputStream in=jarFile.getResourceAsStream(fileName);
                OutputStream out = new FileOutputStream(SETTINGSDIR+fileName);

                // Transfer bytes from in to out
                byte[] buf = new byte[1024];
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                in.close();
                out.close();
            }

        } catch (Exception e) {e.printStackTrace();}
    }
Grazie per l'aiuto
asdf è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2007, 17:26   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
ma usare winrar tipo?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2007, 18:45   #3
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ma usare winrar tipo?
infatti......non capisco perchè complicarsi la vita
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 10:19   #4
asdf
Senior Member
 
Iscritto dal: Jul 2002
Messaggi: 414
Perché io devo estrarre il file jar da remoto utilizzando una servlet. Il file risiederebbe sul server del cliente (mi hanno detto di fare così, io avrei messo direttamente i files estratti).
asdf è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 10:40   #5
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Prova a caricare il file Jar con la getResource del tuo classLoader, poi aprilo come JarFile: troverai all'interno una sequenza di ZipEntry, che corrispondo ai file contenuti.

Attenzione però: se fai così, devi aggiungere al classpath la directory che contiene il file Jar (non solo il file Jar in sè, non basta).

Se il file sta in "tomcat/lib", per esempio, puoi mettere nel classpath "tomcat/lib/miojar.jar;tomcat/lib".
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 12:10   #6
asdf
Senior Member
 
Iscritto dal: Jul 2002
Messaggi: 414
Grazie mille.
Oggi pomeriggio proverò ad utilizzare la classe JarFile che mi hai segnalato (e di cui ingoravo l'esistenza).

Ciao.
asdf è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 13:50   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ma usare winrar tipo?
perché WinRar potrebbe non essere installato sul computer su cui verrà eseguito il jar?
perché interagire con un programma esterno e nativo oltre che complicato lo legherebbe anche ad una specifica piattaforma?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 14:17   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da 71104 Guarda i messaggi
perché WinRar potrebbe non essere installato sul computer su cui verrà eseguito il jar?
perché interagire con un programma esterno e nativo oltre che complicato lo legherebbe anche ad una specifica piattaforma?
pensavo ke doveva vedere al runtime i file del jar per vedere tipo se aveva aggiunto correttamente qulche risorsa o cose del genere...
dal post iniziale non si capiva quello ke doveva fare
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Una lettera promette una rivolta contro ...
SpaceX ha lanciato la missione Flight 15...
NVIDIA cerca il successore di Jensen Hua...
La CNSA annuncia la missione Tianwen-4 v...
Una valanga di wafer e memorie incombe s...
Microsoft 365, miglioramenti dopo il dow...
Un'IA attacca la tua azienda, ma per dif...
TSMC investe 1 miliardo di dollari in Op...
Niente più risposte IA nelle ricerche: M...
Allarmi bomba nelle scuole, il Viminale:...
OpenAI incassa 10 miliardi in tre mesi, ...
Continua il Black Friday Engwe: sconto e...
OnePlus 12 riceve Android 17 con una set...
Troppe patch generate dall'IA: anche chi...
Comprata e spenta il giorno dopo: cos'er...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v