J'essaie de regrouper un exécutable .jar dans une application en utilisant la solution fournie ici : Comment créer un dossier .app à partir d'un exécutable .jar ? . J'ai déduit que main.script à l'intérieur de Contents -> Resources -> script utilise les répertoires globaux de l'ordinateur, et non le répertoire local de l'application. Ainsi, il échoue. J'ai trouvé une proposition de solution sur cette page : Mauvais répertoire de travail, si bash script est ouvert par double-clic . Malheureusement, même ce code ne semble pas fonctionner comme prévu. Pour la démonstration, j'ai placé le .jar dans le même dossier que le script. Voici le code AppleScript que j'essaie d'utiliser :
do shell script "DIR=$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )
cd \"${DIR}\"
java -jar execute.jar"
Notez que les guillemets Bash sont échappés ; voici le code brut :
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd "${DIR}"
java -jar execute.jar
La première ligne devrait trouver le répertoire du script, la deuxième devrait naviguer vers ce répertoire, et la troisième devrait trouver et exécuter "execute.jar". Comme je l'ai dit, ce n'est pas le cas. Je dépannerais davantage si je connaissais suffisamment Bash - c'est le plus approfondi que j'aie jamais fait. J'ai vérifié les trois lignes de manière indépendante, ce qui signifie que le fichier DIR
prend son répertoire dans un Bash/Terminal fraîchement ouvert, indépendamment du script.
N'est-ce pas un peu comme "la poule ou l'oeuf" ? Le site DIR
donne le répertoire courant, qui est ensuite utilisé pour définir le répertoire courant avec la fonction cd
?