J’ai développer une petite appli en java j’ai mon fichier.jar et je peux tres bien le lancer par la commande java -jar fichier.jarJusque la tout va bien c’est apres que ca se complique et je ne sais pas si c’est faisable.
Je souhaiterais donc “combiner” la commande de lancement du fichier et je fichier.jar de maniere à ce que l’on puisse lancer l’appli d’un simple click dessus. Je ne souhaite pas le faire avec plusieurs fichiers seulement avec un seul. Les solutions du type faire un scrit shell qui lance la commande fonctionne mais comme ca fait 2 fichiers ce n’est pas ce que je recherche.
Est-il donc possible de faire autrement et de tout mettre en un seul fichier executable???
essayes de créer un fichier toto.sh.java:#!/bin/bash
java -jar - <<EOF
et ensuite cat fichier.jar >>toto.sh.java
echo EOF >>toto.sh.java
chmod +x toto.sh.java
et ensuite, tu testes avec ./toto.sh.java
je ne sais pas s’il va prendre " - " comme l’entrée standard, mais sinon, tu peux compliquer le script shell, injecter ton executable java dans un pipe nommé, et exectuter le contenu de ce pipe avec 'java -jar '.
Le tout en un seul fichier.
[quote=“MattOTop”]essayes de créer un fichier toto.sh.java:#!/bin/bash
java -jar - <<EOF
et ensuite cat fichier.jar >>toto.sh.java
echo EOF >>toto.sh.java
chmod +x toto.sh.java
et ensuite, tu testes avec ./toto.sh.java
je ne sais pas s’il va prendre " - " comme l’entrée standard, mais sinon, tu peux compliquer le script shell, injecter ton executable java dans un pipe nommé, et exectuter le contenu de ce pipe avec 'java -jar '.
Le tout en un seul fichier.[/quote]
Ben merci de vous pencher sur ce problème, en ce qui concerne la première méthode je n’arrive pas à la faire fonctionner malheureusement.
[code]./toto.sh.java
./toto.sh.java: line 2: bad substitution: no closing "" in
S
ab
P
c
de
P
fgi
jk
l
fop
&P
qr
)s
qt
,s
u
Lcompte/Main;main([Ljava/lang/String;)Vargs[Ljava/lang/String;stAffLjava/lang/String;fLjavax/swing/JFrame;
cLjava/awt/Container;m1Ljavax/swing/JMenu;mi1Ljavax/swing/JMenuItem;
menLjavax/swing/JMenuBar;b1Ljavax/swing/JButton;b2l1Ljavax/swing/JLabel;
SourceFile Main.java
23java/lang/StringQuel bouton quitte l’appli
2yjavax/swing/JFrame
La fenêtre
z{
compte/Main$1 |{
InnerClasses
}~
javax/swing/JMenuFichierjavax/swing/JMenuItemQuit
javax/swing/JMenuBar
[/code]J’ai essayer d’autres caractere comme le # pour remplacer la substitution mais ca ne marche pas non plus malheureusement.
En ce qui concerne la méthode de rendre executable les .jar, merci à toi le.silmarillion mais je souhaite pouvoir les changer de pc sans etre obligers de reconfigurer toutes les machines sur lesquels mon programme sera mis et je n’ai malheureusement pas encore trouver la solution.
Oui, j’ai bien mis un retour à la ligne entre <<EOF et le debut de mon binaire java. J’ai aussi essayer en en mettant plusieurs ou aucun en me doutant que ca ne marcherais pas mais j’ai preferé essayer quand meme.
essayes donc de passer par un fifo. Ton script serait alors:mkfifo /tmp/fichiertemp.`$$`.java
cat >/tmp/fichiertemp.`$$`.java <<EOF
_le_code_java_EOF
java -jar /tmp/fichiertemp.`$$`.java
rm /tmp/fichiertemp.`$$`.java