# raccourci pour ouvrir une appli java en .sh



## roro (15 Février 2006)

salut à tous,

au bureau, on a une appli développée en java (nécessite la version 1.5) qui s'ouvre indifféremment depuis Linux, Mac OS X ou Windows.
Pour linux et mac os x, il faut passer par le terminal pour ouvrir un fichier de type "runxxx.sh".
Sous windows, on double clique sur un fichier "appli.bat". Plus convivial !

Question : comment créer un raccourci, une icône cliquable pour ouvrir le .sh sans passer par le terminal sous Mac OS X ?

Merci pour votre aide


----------



## Spyro (15 Février 2006)

La bonne solution, pour certains réglages sous linux, comme pour mac, c'est de faire un fichier .jar avec un manifest correct, _comme ils devraient toujours l'être  _  (indiquant la main class) et oh surprise tu découvriras qu'il se lance en double cliquant dessus sous MacOSX. Pour linux ce n'est pas forcément le comportement par défaut, ce qui est bien dommage, mais ça peut se configurer.

Sinon une solution, *pas plus rapide*: un applescript qui va lancer le script shell adequat (via do shell script et en récupérant le dossier courant du script je sais plus comment, j'ai pas de mac sous la main là). Ah tiens je crois qu'il y a DropScript qui fait ça tout seul (mais pour moi ça reste une *mauvaise* solution pour du java).


----------



## ntx (15 Février 2006)

roro a dit:
			
		

> au bureau, on a une appli développée en java (nécessite la version 1.5) qui s'ouvre indifféremment depuis Linux, Mac OS X ou Windows.
> Pour linux et mac os x, il faut passer par le terminal pour ouvrir un fichier de type "runxxx.sh".
> Sous windows, on double clique sur un fichier "appli.bat". Plus convivial !
> 
> Question : comment créer un raccourci, une icône cliquable pour ouvrir le .sh sans passer par le terminal sous Mac OS X ?


En le renommant "runxxx.command".


----------



## mpergand (15 Février 2006)

Pour rendre un fichier de commandes exécutable à partir du bureau:
- lui donner l'extension .command
- dans le terminal faire: chmod ug+x nom-du-fichier


----------



## GrandGibus (15 Février 2006)

Regarde peut-être du coté de JarBundler qui est livré avec les dev tools.

N'empêche qu'il est quand même conseillé comme le dit Spyro de packager comme il se doit le Jar avec son manifest et les entrées Class-Path et Main-Class 

gg


----------



## Spyro (15 Février 2006)

Ah oui les .command c'est vrai !
Mais *attention* ça l'ouvre dans le terminal et ça ne fait pas de "cd", le script ne fonctionnera donc peut-être pas tel quel (son pwd est le répertoire de l'utilisateur).
_ Et puis la "bonne" solution reste la première que je donne à mon avis    En tout cas ça t'en fait des solutions  
_


----------



## molgow (15 Février 2006)

C'est mieux de faire un bon .jar, mais on peut pas tout mettre dans un MANIFEST. Dites moi comment faire que le .jar s'ouvre avec le paramètre -Xms1g ? Ou comment spécifier qu'il faut charger certains .jar externe ? Ou comment dire que le .jar s'ouvre avec comme working directory le répertoire où il se trouve ?
Ça m'intéresse si vous avez des solutions à proposer.


----------



## GrandGibus (15 Février 2006)

molgow a dit:
			
		

> Dites moi comment faire que le .jar s'ouvre avec le paramètre -Xms1g ?


il s'agit là d'un paramètre de la JVM elle-même... donc, seule solution: passer par la variable d'environnement JAVA_OPT (que sait prendre automatiquement en compte la jvm)



			
				molgow a dit:
			
		

> Ou comment spécifier qu'il faut charger certains .jar externe ?


Seule solution élégante consiste à écrire son propre class-loader (désolé)



			
				molgow a dit:
			
		

> Ou comment dire que le .jar s'ouvre avec comme working directory le répertoire où il se trouve ?


-Duser.dir="."

JarBundler permet de spécifier pas mal de ces problèmes. Sous Windows, il faut passer par un petit programme C.... c'est le prix à payer pour avoir une belle icone.


----------



## molgow (15 Février 2006)

GrandGibus a dit:
			
		

> JarBundler permet de spécifier pas mal de ces problèmes. Sous Windows, il faut passer par un petit programme C.... c'est le prix à payer pour avoir une belle icone.



Voilà, c'est bien où je voulais en venir 
C'est qu'il n'y a pas un bon moyen multiplateforme de distribuer une logiciel écrit en Java.


----------



## roro (16 Février 2006)

merci à tous pour ces précisions.

Pour info, je ne suis pas développeur mais simple utilisateur.
Donc, j'ai essayé de renommer en .command
ça ouvre le terminal... ça affiche quelques infos dans le terminal, mais rien ne se passe.


----------



## roro (17 Février 2006)

suite !
j'ai laissé un collègue, utilisateur de Linux, qui connaît bien les commandes Unix toucher au Mac... je ne sais pas ce qu'il a trifouillé mais en moins de 3mn via le terminal il m'a créé un fichier double-cliquable en .command, qui appelle l'appli en java se trouvant sur un de nos serveurs  
ce que je peux vous dire, c'est que je l'ai vu éditer le fichier .command pour indiquer le chemin de l'appli à ouvrir.
bref, c'est ce que je voulais, ça marche !


----------

