Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Sembra che nel file jar ci sia tutto. Mi sono spostato nella directory c:\..... e ora mi dice:
Unable to access jarfile photoAlbum.jar
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Ricapitolando il tutto:
In questa directory c'è la cartella con i file class: c:/listati/javacodice/com/mokabyte/mokabook\javabeans/photoAlbum
Il comando jar da dove lo lancio ?
Il file manifest sta dentro c:/listati/javacodice/
Il comando java -jar photoAlbum.jar da dove lo lancio ?
Il comando jar che invoco è scritto così:
jar cfm photoAlbum.jar photoAlbumManifest.tmp c:/listati/javacodice/com/mokabyte/mokabook/javabeans/photoAlbum/*.class c:/listati/javacodice/com/mokabyte/mokabook/javabeans/photoalbum/*.*
No, è sbagliato! Se specifichi i class partendo da C:\ il tool jar "tira" dentro TUTTO il percorso, comprese le cartelle "listati", "javacodice", ecc..
Questo NON va bene. All'interno dei jar ci devono SOLO essere le cartelle che RIFLETTONO i nomi di package. Non ci deve essere altro "a monte", altrimenti non ti funzionerà un bel nulla. "com" è il package radice, quindi alla radice del jar ci DEVE essere una cartella "com".
Quindi stai come directory "corrente" in: C:\listati\javacodice
e poi da lì:
codice:jar cfm photoAlbum.jar photoAlbumManifest.tmp com\mokabyte\mokabook\javabeans\photoAlbum\*.*
Tra l'altro perché hai specificato 2 volte la photoalbum, una volta con *.class e l'altra con *.* ?? Hai anche i sorgenti lì sotto? Hai altre risorse (es. immagini)? I sorgenti .java chiaramente NON servono in un jar "eseguibile". Se hai altre risorse es .png ok ma allora dovresti precisare esattamente cosa tirare dentro nel jar.
Da QUALUNQUE directory corrente che vuoi, purché specifichi un path assoluto o relativo al photoAlbum.jar. Ti è chiara la differenza tra percorso assoluto e relativo??
Ultima modifica di andbin; 29-10-2016 a 14:13
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Allora il libro riporta che dentro il comando jar va messo sia photoAlbum\*.class sia photoAlbum\images\*.* dove images è una cartella che contiene immagini jpeg. Cioè sia i file class che le immagini con il comando jar che ti ho specificato.
Ok, scusa, nel tuo ultimo post NON avevi messo la "images" e mi sembrava quindi dubbio.
Quindi diventa:
codice:jar cfm photoAlbum.jar photoAlbumManifest.tmp com\mokabyte\mokabook\javabeans\photoAlbum\*.class com\mokabyte\mokabook\javabeans\photoAlbum\images\*.*
Ripeto: sempre stando in C:\listati\javacodice
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Adesso mi dà : Invalid or corrupt jar file photoAlbum.jar e sto eseguendo java -jar photoAlbum.jar da c:/listati/javacodice
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet