Mi sono letto tutto il 3d, ma mica ho capito come hai risolto
Potresti ricapitolare come fare per avere un exe unico per Windows che comprenda jar e runtime java?
Ciao,
una volta usata l'opzione Crea Package Standalone ti verrà creata una cartella che si chiama build e si trova dentro objects/temp della tua app.
Questa cartella, copiata semplicemente nel computer che deve eseguire l'applicazione funziona così com'è semplicemente eseguendo l'exe perchè si porta dietro tutto il runtime e le librerie di java. Se vuoi vedere anche i log dell'applicazione per il debug, devi eseguire il file run_debug.bat al posto dell'exe che non visualizza i log.
Puoi usare Innosetup per distribuire la tua app utilizzando un template che viene generato atumaticamente sempre nella dir build e si chiama InstallerScript-Template.iss
Personalizzando quello che ti serve nel file .iss, dopo aver installato inno setup, potrai creare un eseguibile solo (setup.exe) che installa direttamente la tua applicazione nel pc target.
Però non puoi fare un solo file eseguibile, il setup, una volta lanciato nel pc dove va installata l'app, ri-crea sempre lo stesso albero della directory che è quello dentro build per intenderci e, come dice giustamente
@udg effettivamente è un pò seccante avere sempre il runtime replicato per ogni app.
Volendo però, se devi fare un upgrade della applicazione, in seguito non è necessario ridistribuire sempre tutto, ma solo il file modules che si trova dentro lib.
Per alcune app che uso, ho fatto una procedura automatica che legge su un mio server ftp se esiste l'aggiornamento e si scarica solo il file modules aggiornato senza distribuire nulla (anche se modules alla fine è il file più grande dell'app).