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