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