Estoy tratando de empaquetar un ejecutable .jar en una aplicación utilizando la solución proporcionada aquí: ¿Cómo crear una carpeta .app a partir de un ejecutable .jar? . Deduje que main.script dentro de Contents -> Resources -> está usando los directorios globales del ordenador, no el directorio local de la aplicación. Por lo tanto, falla. Encontré una propuesta de solución en esta página: Directorio de trabajo incorrecto, si se abre bash script mediante doble clic . Por desgracia, incluso este código no parece funcionar como se pretende. Para la demostración, he colocado el .jar en la misma carpeta que el script. Aquí está el código AppleScript que estoy tratando de usar:
do shell script "DIR=$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )
cd \"${DIR}\"
java -jar execute.jar"
Tenga en cuenta que las comillas de Bash están escapadas; aquí está el código en bruto:
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd "${DIR}"
java -jar execute.jar
La primera línea debería encontrar el directorio del script, la segunda debería navegar a ese directorio, y la tercera debería encontrar y ejecutar "execute.jar". Como he dicho, no lo hace. Si supiera lo suficiente de Bash, solucionaría más problemas; esto es lo más profundo que he hecho. He verificado las tres líneas de forma independiente, lo que significa que el DIR
está recogiendo su directorio de un Bash/Terminal recién abierto, independientemente del script.
¿No es esto algo así como "el huevo o la gallina"? El DIR
da el directorio actual, que luego se utiliza para establecer el directorio actual con cd
?