OVH Cloud OVH Cloud

Info.plist et script sh

20 réponses
Avatar
yvon.thoravalNO-SPAM
Comme je n'arrive pas à lancer mon appli java j'ai écrit un script de
lancer déposé dans : MyApp.app/MacOS/

et j'ai mis :

<key>CFBundleExecutable</key>
<string>startup.sh</string>

dans mon Info.plist

rien ne se passe, par contre, le script startup.sh lancé depuis le
répertoire MyApp.app/MacOS/ marche impec.

Question : quel est le répertoire d'où se lance un exécutable par
Info.plist ???

--
yt

10 réponses

1 2
Avatar
Saïd
Yvon Thoraval :
Comme je n'arrive pas à lancer mon appli java j'ai écrit un script de
lancer déposé dans : MyApp.app/MacOS/

et j'ai mis :

<key>CFBundleExecutable</key>
<string>startup.sh</string>

dans mon Info.plist

rien ne se passe, par contre, le script startup.sh lancé depuis le
répertoire MyApp.app/MacOS/ marche impec.

Question : quel est le répertoire d'où se lance un exécutable par
Info.plist ???




Essaye MacOS/startup.sh, c'est ce qui me semble le plus logique, sans
garantie.

--
Saïd.
C programmers never die - they're just cast into void.

Avatar
Patrick Stadelmann
In article <1gnnnff.xjmit1kmrf36N%,
(Yvon Thoraval) wrote:

Comme je n'arrive pas à lancer mon appli java j'ai écrit un script de
lancer déposé dans : MyApp.app/MacOS/


Essaye plutôt : MyApp.app/Contents/MacOS/

Patrick
--
Patrick Stadelmann

Avatar
yvon.thoravalNO-SPAM
Patrick Stadelmann wrote:


Essaye plutôt : MyApp.app/Contents/MacOS/


je ne pige pas la réponse ))

bon, je reprend à 0

dans mon Info.plist j'ai :

<key>CFBundleExecutable</key>
<string>startup.sh</string>


C'est ce qui devrait permettre en double-cliquant sur MyApp.app de
lancer le script "startup.sh" qui se trouve dans :

MyApp.app/Contents/MacOS

d'après c que font "Eclipse" et "Jar Bundler" c'est là où il faut mettre
l'excéutable de lancement.

J'ai bon ?

Ensuite, dans ce script, très simple, je dois donner les bons path, donc
j'ai mis les paths comme s'il était lancé depuis
MyApp.app/Contents/MacOS/

là je suis sûr que ce n'est pas bon, car ça marche pas.

D'où ma question le finder lancer l'éxcécutable avec Info.plist le lance
d'où ?

Depuis le rep de Info.plist ?

Si oui, alors c'est MyApp.app/Contents/

j'ai bon ?
--
yt

Avatar
Patrick Stadelmann
In article <1gnno3u.fq55b91s5nku8N%,
(Yvon Thoraval) wrote:

Patrick Stadelmann wrote:


Essaye plutôt : MyApp.app/Contents/MacOS/


je ne pige pas la réponse ))


Dans ton premier message, tu parlais de MyApp.app/MacOS. A ma
connaissance, il doit toujours y avoir un dossier Contents au premier
niveau du bundle.

Patrick
--
Patrick Stadelmann


Avatar
Schmurtz
(Yvon Thoraval) wrote:

Comme je n'arrive pas à lancer mon appli java j'ai écrit un script de
lancer déposé dans : MyApp.app/MacOS/

et j'ai mis :

<key>CFBundleExecutable</key>
<string>startup.sh</string>

dans mon Info.plist

rien ne se passe, par contre, le script startup.sh lancé depuis le
répertoire MyApp.app/MacOS/ marche impec.


Il faut que startup.sh comment par la ligne suivante afin d'indiquer au
système quel shell utiliser :

#!/bin/sh

Par ailleurs, il faut aussi que le script soit exécutable (chmod a+x aaa)

--
Schmurtz

Avatar
Schmurtz
Saïd wrote:

Essaye MacOS/startup.sh, c'est ce qui me semble le plus logique, sans
garantie.


Ça ne marchera pas, le nom de l'exécutable est le chemin d'accès depuis
ce dossier MacOS. Il faut savoir que pour d'autre système, c'est dans
d'autre dossier que l'exécutable sera cherché : pour Classic, c'est dans
"MacOS Classic", on pourrait imaginer que pour un linux ce soit dans
Linux et pour la version windows dans WindowsXP ou Windows. Le système
de paquet d'application mis en place par NeXT a été pensé pour n'avoir
qu'une seule et unique application pour tout type de système/plateforme
(avec bien sûr un exécutable différent pour chaque).

--
Schmurtz

Avatar
yvon.thoravalNO-SPAM
Patrick Stadelmann wrote:

Dans ton premier message, tu parlais de MyApp.app/MacOS. A ma
connaissance, il doit toujours y avoir un dossier Contents au premier
niveau du bundle.


Oui, oui, c'est une coquille de ma part...
--
yt

Avatar
yvon.thoravalNO-SPAM
Schmurtz wrote:

#!/bin/sh

Par ailleurs, il faut aussi que le script soit exécutable (chmod a+x aaa)


oui, ça je sais et je l'ai vérifié, ma hiérarchie :

MyApp.app/
Contents/
Info.plist
MacOS/
startup.sh
Resources/
MyApp.icns
Java/
data/
Bottles.yap (le fichier de ma bd sérialisée)
images/
les répertoires contenant mes images
macosx_carbon/
java_swt
les *.jnilib nécessaires à java_swt
swt.jar
swt-pi.jar
db4o-4.0-java1.4.jar
jar_0.jar (le jar contenant la Main.class)
jface.jar
soda.jar

Mon problème est que je ne sais pas d'où le finder lance mon appli
est-ce du répertoire contenant Info.plist càd MyApp.app/contents ?

Je ne le crois pas car si je règle mes paths (dans startup.sh)
accordingly rien ne se passe (au finder), par contre si, depuis ce même
répertoire, je fais au term "sh MacOS/startup.sh" ça roule...

J'ai essayé aussi le répertoire contenant MyApp.app, sans succès...



--
yt

Avatar
lucsky
Yvon Thoraval wrote:

Mon problème est que je ne sais pas d'où le finder lance mon appli
est-ce du répertoire contenant Info.plist càd MyApp.app/contents ?


De la racine (/) du disque (pour le savoir, rajoute just un 'pwd' dans
ton script). Pour avoir le path complet de ton appli, utilise $0, que tu
peux ensuite saucissonner pour construire les paths vers les librairies
contenues dans ton bundle.

--
Luc Heinrich -

Avatar
yvon.thoravalNO-SPAM
Luc Heinrich wrote:

De la racine (/) du disque (pour le savoir, rajoute just un 'pwd' dans
ton script). Pour avoir le path complet de ton appli, utilise $0, que tu
peux ensuite saucissonner pour construire les paths vers les librairies
contenues dans ton bundle.


OK, merci beaucoup, ça devrait m'aider...

Cependant, histoire de savoir d'où le Finder lance une appli, j'ai
ajouté dans mon script :

touch toto.txt
pwd > toto.txt

pas de /toto.txt si lancé par le Finder (mais p'tet un pb de perms sur
/, c'est pas lancé par sudo)

--
yt

1 2