Per poterti aiutare un minimo, dovresti fornire, appunto, un minimo di informazioni:
1) Il nome completo della classe che contiene il main
2) Informazioni relative alle eventuali librerie usate
3) Verificare ed, eventualmente, postare qui la struttura del file JAR
4) Verificare ed, eventualmente, postare qui il contenuto del file MANIFEST.MF contenuto nella directory "META-INF" del JAR
Inoltre devi tenere presente che, soprattutto quando fai uso di librerie esterne, l'ambiente di sviluppo genera una directory in cui viene creato il file JAR (generalmente, questa directory si chiama "dist" o "bin"). All'interno di questa directory trovi il file JAR generato dalla compilazione e una directory (generalmente chiamata "lib") contenente tutte le librerie esterne. L'applicazione, quindi, non è rappresentata solo dal file JAR, ma dall'insieme file JAR + directory delle librerie ed è tutto questo "pacchetto" che va copiato. Se, al contrario, copi soltanto il file JAR, esso non funzionerà.
Aggiungo un'altra informazione, in quanto mi ci sono scontrato: in alcuni sistemi Mac (non so quali, non me ne intendo e non mi interessa nemmeno saperlo, in quanto per me Mac è spazzatura costosa), c'è un aggeggino chiamato "Jar Launcher" (un'invenzione tutta Apple) che viene invocato quando si fa doppio clic sul file JAR; ebbene, capita (è capitato!) che con alcuni aggiornamenti scaricati dal sistema, questo programmino smetta di funzionare poichè, probabilmente, non riesce più a trovare la versione corretta della JVM da avviare. Non ho trovato una soluzione al problema, nemmeno nei forum popolati da espertissimi (o presunti tali) utenti Mac. L'unica vera soluzione consiste nel creare uno shell-script che vada a fare ciò che ci si aspetta venga fatto: java -jar NomeDelJar.jar
Ciao.![]()