[resolu]créer un lanceur pour un .jar

salut a tous

Petit problème que je comprends pas … entre autres …

J’ai une application java. je peux la lancer en console avec un

Je créé un lanceur avec cette commande, rien ne se passe.
Je fais un petit script shell, reprenant la commande, et le lance en console : nickel !
Je mets le chemin du script dans un lanceur … rien ne se passe, le programme ne se lance pas.

Je rate quelque chose, mais je ne vois pas quoi.

Merci pur vos réponses.

@+

bonsoir,
montres les droits sur ton .jar (ls -al) en montrant le chemin vers cet ‘exécutable’, et aussi montre ce que tu mets dans ton lanceur, dans le champs commande … stp.

les droits du .jar et le chemin :

[user@debian : ~/telechargement/occp.zip_FILES ] ls -ltr opencellartest.jar -rwxr--r-- 1 user user 10209 2007-03-22 16:20 opencellartest.jar [user@debian : ~/telechargement/occp.zip_FILES ]

Ce que je mets dans mon lanceur :

sh /home/user/scripts/lance_opencellar # commande qui fonctionne en console

Ce que contient le script :

[code]#! /bin/bash

java -jar /home/user/telechargement/occp.zip_FILES/opencellartest.jar[/code]

commande qui fonctionne en console. Si je mets directement la ligne java -jar dans mon lanceur, c’est pareil, rien ne se lance.

voilou

@+

[quote=“bluepingoo”]J’ai une application java. je peux la lancer en console avec un

Déjà ici, tu sous-entends que tu es dans le repertoire parent de ton fichier jar ?
exemple:

ne peut fonctionner que si test.jar se trouve là où tu lances la commande, c’est pourquoi :

jcode@debian:~/eclipse/workspace/cahierJava$ # le .jar vient de s'exécuter :) # jcode@debian:~/eclipse/workspace/cahierJava$ cd .. jcode@debian:~/eclipse/workspace$ java -jar test.jar Unable to access jarfile test.jar jcode@debian:~/eclipse/workspace$ # et là, ça va plus :( #

Donc, maintenant:

  • click droit sur le tableau de bord, “ajouter au tableau de bord”
  • sélection de “lancer une application personnalisée”, “ajouter”
  • remplir les champs, surtout “commande”, tu parcoures jusque ton .jar, mais tu rajoutes :

java -jarpuis un espace, devant le path vers le .jar inscrit dans le champ.

Tu n’as plus qu’à cliquer, et ça le lance … Si ça n’est pas le cas, c’est que java n’est pas bien configurer, pas dans le $PATH, ou qu’il y a un blem avec ton .jar (META-INF ? … MANIFEST.MF).

Merci pour tes réponses Usinagaz.

Oui tout à fait.

J’ai fait exactement ce que tu m’as dit , mais toujours le même problème
Ce que j’ai mis dans le lanceur java -jar /home/thierry/telechargement/occp.zip_FILES/opencellartest.jar
Quand je clique dessus, rien ne se lance.
Je prends la même commande (je fais même un copier coller pour être sur) en console et là, nickel ! mon programme se lance.

Ce n’est pas le seul programme java avec lequel j’ai le problème d’ailleurs

[quote]Tu n’as plus qu’à cliquer, et ça le lance … Si ça n’est pas le cas, c’est que java n’est pas bien configurer, pas dans le $PATH, ou qu’il y a un blem avec ton .jar (META-INF ? … MANIFEST.MF).
[/quote]

Ben je crois que tu avais raison Usinagaz :blush: je dois avoir un problème au niveau du PATH :
j’ai modifié mon script de lancement en rajoutant le chemin de mon JRE :

export PATH=/usr/jre1.5.0_06/bin:$PATH java -jar /home/user/telechargement/occp.zip_FILES/opencellartest.jar
et là mon lanceur fonctionne

Reste que je ne vois pas pourquoi ça fonctionne en console et pas avec un lanceur … :frowning:

Merci en tout cas

Bonsoir,
il faut ajouter le jre au path comme ceci par exemple :

[code]# nano /etc/bash.bashrc

#Ecrire ça à la fin du fichier, faire entrer, et sauvegarder le fichier

# java_home, c’est une variable utilisée par eclipse par exemple.

set JAVA_HOME=/usr/lib/jdk1.6.0/jre
set PATH=$PATH:$JAVA_HOME
export JAVA_HOME PATH[/code]
Selon ton installation du jre, toi ça serait plutôt /usr/jre1.5.0_06/bin (si ça marche comme ça) que /usr/lib/jdk1.6.0/jre
Et puis tu relances une console, voir tu relances une session, voir tu rebootes, avant de tenter autre chose.
NB: mais normalement, pas besoin de spécifier le bin où se trouvent les java, javac, javaws … juste le rep au dessus du bin, bref, le jre.
Donc si ça marche pas, tente de mettre /usr/jre1.5.0_06/ si tu as juste derrière ton bin/java, bin/javac, … etc …

Voilà ce que j’ai dans mon path dans ~/.bashrc :

Je rajoute les variables dans /etc/bash.bashrc et je te tiens au courant.

ça me parait pas normal dans un .bashrc, t’es sur que tu parles pas de /etc/profile là ? en tous cas retire cet ligne PATH dans .bashrc à mon avis. (c’est toi qui l’a mise ?).

Pas impossible que ce soit moi … dans un moment de désespoir…:blush:
Je retire cette partie du path de mon ~/.bashrc

Je ne peux pas redémarrer tout de suite…mais je te tiens au courant.

J’ai retiré la partie /usr/jre1.5.0_06/bin/ de mon PATH et j’ai rajouté à la fin de /etc/bash.bashrc

set JAVA_HOME=/usr/jre1.5.0_06/ set PATH=$PATH:$JAVA_HOME export JAVA_HOME PATH

avec /bin ou non à la fin du chemin.

Le lanceur avec la commande java -jar monprog.jar ne lance rien.
En console cela donne :

[user@debian : ~ ] java -jar /home/user/documents/Informatique/open_cellar/opencellartest.jar Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(libgcj.so.70) at java.awt.Window.<init>(libgcj.so.70) at java.awt.Frame.<init>(libgcj.so.70) at java.awt.Frame.<init>(libgcj.so.70) at javax.swing.SwingUtilities$OwnerFrame.<init>(libgcj.so.70) at javax.swing.SwingUtilities.getOwnerFrame(libgcj.so.70) at javax.swing.JWindow.<init>(libgcj.so.70) at opencellar.ui.SplashLayer.<init>(SplashLayer.java:36) at opencellar.application.Application.startSplash(Application.java:155) at opencellar.application.Application.run(Application.java:141) at opencellartest.Main.main(Main.java:69) Caused by: java.lang.UnsatisfiedLinkError: libgtkpeer: libgtkpeer.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou répertoire de ce type at java.lang.Runtime._load(libgcj.so.70) at java.lang.Runtime.loadLibrary(libgcj.so.70) at java.lang.System.loadLibrary(libgcj.so.70) at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(libgcj.so.70) at java.lang.Class.initializeClass(libgcj.so.70) at java.lang.Class.forName(libgcj.so.70) at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70) ...11 more

Le lanceur qui lance le script fonctionne.

Je rajoute le chemin du jre dans mon PATH
Le lanceur avec java -jar ne fonctionne pas, mais la commande focntionne ne console.
Le lanceur avec le script fonctionne.

Les messages d’erreurs donnent surement une indication, mais je ne suis pas assez calé.

Et ce que je ne comprends toujours pas :
pourquoi cela fonctionne en cosole et pas par lanceur …

Mais le fait de faire un export PATH avant de lancer le programme ne me gene pas.
C’est juste pour comprendre…

@+

bonsoir,
même en relançant ta session ou en rebootant ?
bon sinon, ya aussi /etc/alternatives qu’il faut vérifier … montres un peu:

et aussi :

ls -al /etc/alternatives | grep java

lrwxrwxrwx   1 root root   48 2007-02-11 12:43 ControlPanel -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/ControlPanel
lrwxrwxrwx   1 root root   68 2007-02-11 12:43 firefox-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx   1 root root   68 2007-02-11 12:43 iceape-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx   1 root root   68 2007-02-11 12:43 iceweasel-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx   1 root root   33 2007-01-06 19:26 jar -> /usr/lib/jvm/java-gcj/jre/bin/jar
lrwxrwxrwx   1 root root   34 2007-02-11 12:43 java -> /usr/lib/jvm/java-gcj/jre/bin/java
lrwxrwxrwx   1 root root   43 2007-02-11 12:43 java_vm -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java_vm
lrwxrwxrwx   1 root root   42 2007-02-11 12:43 javaws -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/javaws
lrwxrwxrwx   1 root root   61 2007-02-11 12:43 javaws.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/javaws.1.gz
lrwxrwxrwx   1 root root   37 2007-02-11 12:43 keytool -> /usr/lib/jvm/java-gcj/jre/bin/keytool
lrwxrwxrwx   1 root root   42 2007-01-18 21:47 libswt-3.2-java -> /usr/share/java-config/libswt-gtk-3.2-java
lrwxrwxrwx   1 root root   68 2007-02-11 12:43 mozilla-javaplugin.so -> /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so
lrwxrwxrwx   1 root root   40 2007-02-11 12:43 orbd -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/orbd
lrwxrwxrwx   1 root root   59 2007-02-11 12:43 orbd.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/orbd.1.gz
lrwxrwxrwx   1 root root   43 2007-02-11 12:43 pack200 -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/pack200
lrwxrwxrwx   1 root root   62 2007-02-11 12:43 pack200.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/pack200.1.gz
lrwxrwxrwx   1 root root   46 2007-02-11 12:43 policytool -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/policytool
lrwxrwxrwx   1 root root   65 2007-02-11 12:43 policytool.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/policytool.1.gz
lrwxrwxrwx   1 root root   40 2007-02-11 12:43 rmid -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/rmid
lrwxrwxrwx   1 root root   59 2007-02-11 12:43 rmid.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/rmid.1.gz
lrwxrwxrwx   1 root root   41 2007-02-11 12:43 rmiregistry -> /usr/lib/jvm/java-gcj/jre/bin/rmiregistry
lrwxrwxrwx   1 root root   46 2007-02-11 12:43 servertool -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/servertool
lrwxrwxrwx   1 root root   65 2007-02-11 12:43 servertool.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/servertool.1.gz
lrwxrwxrwx   1 root root   33 2007-01-18 21:47 swt.jar -> /usr/share/java/swt-gtk-3.2.1.jar
lrwxrwxrwx   1 root root   45 2007-02-11 12:43 tnameserv -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/tnameserv
lrwxrwxrwx   1 root root   64 2007-02-11 12:43 tnameserv.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/tnameserv.1.gz
lrwxrwxrwx   1 root root   45 2007-02-11 12:43 unpack200 -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/unpack200
lrwxrwxrwx   1 root root   64 2007-02-11 12:43 unpack200.1.gz -> /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/man/man1/unpack200.1.gz

locate jar | grep bin

/usr/bin/fastjar /usr/bin/fastjar-4.1 /usr/bin/grepjar /usr/bin/grepjar-4.1 /usr/bin/jar /usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/bin/jar /usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/jre/bin/jar /usr/share/gettext/libintl.jar

voilou
@+

Bon ;… java est trés mal installé sur ta bécane. tu vois que aucun lien dans alternatives ne pointent vers ton 1.5_06.
De plus, par exemple, /usr/bin/jar est surement un lien qui pointe vers /etc/alternatives/jar. Il faut changer tous les liens de /etc/alternatives, je crois qu’il y a une méthodes pour ça : update-alternatives si tu as bien le fichier /usr/sbin/update-alternatives à lancer en root … Mais je pense que tu ferais mieux de :
désinstaller java-1.5.0-sun si tu peux … pourquoi ? parce que, comme tu programmes un peu en java, c’est pas le jre qu’il te faut, mais le jdk.
Car regardes, tu n’as même pas le compilateur javac

  • installer jdk 1.6 (Mustang).
    Et on revoit le tout aprés, je pense que c’est le mieux.

J’ai installe java avec l’installateur fourni.

Bien que j’aimerais, je ne programme pas en java. Le jre me suffit.
Je veux juste lancer des programmes java par un lanceur, mais ça ne fonctionne qu’en ligne de commande ou en mettant un export du chemin du jre dans mon PATH par l’intermédiaire d’un script (et c’est pour ça que j’avais du le mettre dedans pour eviter justement l’export)

update-alternatives est installé mais requiert pas mal de paramètres.

vala

Quel installateur ? fourni par qui ?

[quote=“bluepingoo”]Bien que j’aimerais, je ne programme pas en java.[/quote]ah … je pensais, vu que [quote=“bluepingoo”]salut a tous
Petit problème que je comprends pas … entre autres …
J’ai une application java. je peux la lancer en console avec un

Je prend le risque de dire des bêtises, mais à mon avis, la session gnome et bash, c’est deux choses différentes, d’ailleurs voyons le nombre de librairies perl, ruby, python utilisées par gnome … Donc, ton lanceur, lui il est pas soumis à BASH, par contre si tu lui mets une commande bash, exemple java -jar monprog.jar, il va aller chercher où le jar à ton avis ? dans PATH je pense … où il va lire /usr/bin/jar -> /etc/alternatives/jar -> unjarpas-bon.
Enfin bref … si tu veux pas changer ton installation de java, essaies ça :

  • fais comme je te dis avec les set JAVA_HOME PATH etc …
  • va dans /etc/alternatives et fais un rm jar, puis un :

et vérifies que /usr/bin/jar pointe bien sur /etc/alternatives/jar …
vala :wink:
ps: si ça fonctionne, tu pourras mettre à jours tes liens java* dans /etc/alternatives à la main … si update-alternatives te rebutte …

Quel installateur ? fourni par qui ?[/quote]

Celui fourni dans l’archive Java : java.com/fr/download/linux_m … w.java.com

[quote=“usinagaz”]
Enfin bref … si tu veux pas changer ton installation de java, essaies ça :

  • fais comme je te dis avec les set JAVA_HOME PATH etc …
  • va dans /etc/alternatives et fais un rm jar, puis un :

et vérifies que /usr/bin/jar pointe bien sur /etc/alternatives/jar … [/quote]

J’ai tout fait … ben rien de mieux. Je n’ai pas de jar dans /usr/jre1.5.0_06/bin/ mais, peu importe j’ai créé sur ceux la :
/usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/bin/jar
/usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/jre/bin/jar
mais ça me donne la même chose.

Je vais rester sur mon script … c’est pas dramatique.

Merci pour ton aide Usinagaz … j’ai encore plein de soucis à soumettre :wink:
:smiley: