Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    5

    Eseguibile dentro JAR: problema su Mac

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    5
    Con un colpo di fortuna (tra le mille prove) sono riuscito a risolvere. Ho inserito in un file script sh la linea di comando da eseguire e poi l'ho richiamata con /bin/sh

    Sia lo script che l'eseguibile estratto dal jar li ho marcati come deleteonexit per non lasciare file su disco!

    tozoo

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    grazie del contributo. Sono sicuro che è un problema con cui qualcuno verrà a scontrarsi prima o poi.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    5
    Non inserisco il codice perchè è un pò lungo, ma qualora qualcuno ne abbia bisogno non esiti a chiedere!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.