Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Nel file .jar il MANIFEST c'è...
Avevo capito che si potessero indicare le cartelle e jar.exe caricava tutto il contenuto. Vediamo andando sullo specifico.
Altra domanda: ho letto che, una volta generati tutti i file .class con gli eventuali package, posso organizzarli in una cartella e creare il file .jar... Immagino però che i file .class debbano conservare la posizione relativa (non ho progetti complessi) e non essere copiati in un'unica cartella di comodo "tanto ci sono le indicazioni dei package"...
Ma non è quello che hai messo tu a mano nella META-INF !
Sì ma la META-INF è "particolare".
Quindi:
a) se non devi mettere attributi particolari nel manifest (es. Class-Path o altro) ma solo il Main-Class:
jar cfe CamiciaTest.jar principale.CamiciaTest principale secondario
l'opzione -e specifica la main class in modo più semplice
b) se devi per forza creare un manifest, allora crei un es. manifest.txt (il nome NON è rilevante ... anche pluto.txt funzionerebbe) con solo:
Main-Class: principale.CamiciaTest
--riga vuota--
poi
jar cfm CamiciaTest.jar manifest.txt principale secondario
oppure
jar cmf manifest.txt CamiciaTest.jar principale secondario
Nota l'ordine di f/m e di jar/manifest. Devono corrispondere!
I nomi di package si DEVONO sempre "riflettere" nella struttura delle cartelle. Quindi una classe com.esempio.Demo DEVE stare in com/esempio/Demo.class
Poi la "com" può stare dentro una directory xyz/ o dentro un xyz.jar, non ha importanza (fintanto che la xyz/ o xyz.jar siano "in classpath")
Se vuoi far andare tutti i file .class generati in un'altra directory ben distinta da quella dei sorgenti (che è una cosa buona) es.
codice:nomeprogetto/ build/ .... src/ com/ .....
Sì, ok, basta usare l'opzione -d di javac. E attenzione: la directory di destinazione va messa in classpath, non è automatico con -d
Ultima modifica di andbin; 13-07-2017 a 22:51
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet