Impossibile creare un eseguibile funzionante con estensione app utilizzando Platypus

2

Sono nuovo di OS X e sto provando a creare un wrapper di applicazione per uno script di shell che avvia un server multimediale (Red5)

Sto provando a racchiudere lo script di avvio del server Red5 ( red5.sh ) in un eseguibile .app utilizzando Platypus .

La documentazione Platypus dice che

You can add a list of files to be copied into the Resources folder of your application bundle. These files can then be used by your script. The default current working directory of your script will be this folder, so you should be able to access them directly from your script's CWD.

Se eseguito normalmente dal terminale (utilizza ./red5.sh ) il server si avvia correttamente, ma quando creo il file .app (dopo aver impostato il CWD dello script nel campo "File da raggruppare" di Platypus, il file .app risultante non viene eseguito quando si fa doppio clic su

Fornisce il seguente errore

Error: Could not find or load main class

Non sono sicuro di cosa sto facendo male, ma penso che sia qualcosa a che fare con il raggruppamento della directory giusta.

    
posta user42933 06.11.2013 - 14:35
fonte

1 risposta

1

Ho avuto un problema simile nel tentativo di eseguire un server di applicazioni Web basato su Java. Per me, il problema si è verificato che le mie variabili di ambiente (in particolare, JAVA_HOME ) non venivano impostate, perché l'istanza di Bash (o qualsiasi altra shell utilizzata) non viene avviata come accesso shell O una shell interattiva, quindi lo script del tuo profilo (ad esempio ~/.profile , ~/.bashrc , ecc.) non viene eseguito automaticamente.

Per me, la soluzione era aggiungere il seguente al mio script:

source ~/.profile

Il comando source fa sì che i comandi in ~/.profile vengano eseguiti nella shell corrente; in questo modo le variabili d'ambiente impostate da tale script saranno disponibili per l'istanza di Bash che inizia l'ornitorinco.

Si noti che è importante non solo eseguire il file del profilo come uno script di shell stesso; questo lo farà girare nella sua stessa shell, che uscirà immediatamente dopo; qualsiasi variabile che imposta cesserà di esistere non appena esce. Questo è il motivo per cui dobbiamo usare il comando source.

In alternativa, puoi semplicemente impostare le variabili d'ambiente necessarie direttamente nel tuo script.

Spero che questo aiuti!

    
risposta data 21.02.2014 - 16:42
fonte

Leggi altre domande sui tag