No se puede crear un ejecutable .app que funcione con Platypus

Soy nuevo en OS X y estoy tratando de crear un contenedor de aplicaciones para un script de shell que inicia un servidor de medios (Red5)

Estoy tratando de envolver el script de inicio del servidor Red5 ( red5.sh) en un .appejecutable usando Platypus .

La Documentación Ornitorrinco dice que

Puede agregar una lista de archivos para copiar en la carpeta Recursos de su paquete de aplicación. Estos archivos pueden ser utilizados por su secuencia de comandos. El directorio de trabajo actual predeterminado de su secuencia de comandos será esta carpeta, por lo que debería poder acceder a ellos directamente desde el CWD de su secuencia de comandos.

Cuando se ejecuta normalmente desde la terminal (está usando ./red5.sh), el servidor se inicia bien, pero cuando creo el .apparchivo (después de haber configurado el CWD del script en el campo "Archivos para agrupar" de Platypus, el .apparchivo resultante no se ejecuta cuando se duplica se hizo clic en.

Da el siguiente error

Error: Could not find or load main class

No estoy seguro de lo que estoy haciendo mal, pero creo que tiene algo que ver con la agrupación del directorio correcto.

Respuestas (1)

Tuve un problema similar al intentar ejecutar un servidor de aplicaciones web basado en Java. Para mí, el problema resultó ser que mis variables de entorno (en particular, JAVA_HOME) no se estaban configurando, lo que se debe a que la instancia de Bash (o el shell que use) no comienza como un shell de inicio de sesión O un Shell interactivo, por lo que la secuencia de comandos de su perfil (p. ej. ~/.profile, ~/.bashrc, etc.) no se ejecuta automáticamente.

Para mí, la solución fue agregar lo siguiente a mi script:

source ~/.profile

El sourcecomando hace que los comandos ~/.profilese ejecuten en el shell actual; de esta manera, las variables de entorno que establece ese script estarán disponibles para la instancia de Bash que inicia ornitorrinco.

Tenga en cuenta que es importante que no solo ejecute el archivo de perfil como un script de shell en sí mismo; eso hará que se ejecute en su propio shell, que saldrá inmediatamente después; cualquier variable que establezca dejará de existir tan pronto como salga. Es por eso que tenemos que usar el comando fuente.

Como alternativa, puede configurar las variables de entorno necesarias directamente en su secuencia de comandos.

¡Espero que esto ayude!