Ciao a tutti, cerco di spiegarvi il mio scenario sperando di essere chiaro.

Ho un JAR al cui interno ho inserito due eseguibili (uno per Windows e uno per Mac) del programma FFMPEG (quindi ho all'interno ffmpeg.exe e ffmpeg).
Quando eseguo il JAR, per prima cosa verifico su che sistema operativo mi trovo e poi estraggo in una directory temporanea il corretto eseguibile (ffmpeg.exe per Windows e ffmpeg per Mac).

Per facilità mi faccio stampare su console il percorso completo di nome del file estratto.

Successivo richiedo il nome di un file video e invoco la Runtime.getRuntime().exec per eseguire il comando di mio interesse (semplicemente una "ffmpeg -i nomefile") e leggo il system.error del comando.

Ho testato la cosa su Windows e funziona correttamente, testando su Mac non ottengo risposta.. o meglio il comando sembra non essere eseguito e non ottengo informazioni sullo standard error. Quindi ho pensato che il problema fosse di permessi e ho fatto questa prova: dopo aver estratto il file e prima della chiusura del JAR (quindi nell'attesa di dargli il nome video da elaborare) ho aperto una finestra di terminale e ho invocato l'eseguibile estratto nella directory temporanea (di cui preventivamente avevo stampato il fullpath) come lo invoco dal java: beh, tutto funziona. Questo mi dimostra che il file è "usabile".

Un'altra prova che ho fatto è stata copiare direttamente ffmpeg su una cartella e invocare il comando non sul file temporaneo ma direttamente su quello copiato da Java: anche qui il funzionamento è corretto.

Qualcuno ha qualche dritta?

(se necessario posso postare codice che ho creto)

Grazie in anticipo,
tozoo