# Appli java lancement par simple click

**URL:** <https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565 "2016-02-20T12:19:02Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/1 "2016-02-20T12:19:02Z")

</div>

Je vais essayer d’etre clair,

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.jar`Jusque 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???

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/2 "2016-02-20T12:19:02Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/3 "2016-02-20T12:19:04Z")

</div>

Merci pour ta réponse Matt,

J’ai donc essayer et il y a un problème avec le caractere - Je vais essayer d’améliorer tout ca de maniere à ce que ca fonctionne.

---

<div class="post-metadata">

**Author:** ![le.silmarillion1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/c5a1d2/32.png) [@le.silmarillion1](https://www.debian-fr.org/u/le.silmarillion1)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/4 "2016-02-20T12:19:05Z")

</div>

Un petit tour chez ubuntu sur l’installation manuelle de java  
[doc.ubuntu-fr.org/applications/java](http://doc.ubuntu-fr.org/applications/java)  
A Adapter à la mode debian bien sure.

---

<div class="post-metadata">

**Author:** ![ouabi](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ouabi/32/3802_2.png) [@ouabi](https://www.debian-fr.org/u/ouabi)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/5 "2016-02-20T12:19:06Z")

</div>

ah ben merci a vous, j’avais justement un gros probleme  
avec java, il etait mal installé, et je le lancais avec une  
mauvaise commande.

---

<div class="post-metadata">

**Author:** ![Sivaslim](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/e19adc/32.png) [@Sivaslim](https://www.debian-fr.org/u/Sivaslim)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/6 "2016-02-20T12:19:06Z")

</div>

[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]

+1…

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/7 "2016-02-20T12:19:11Z")

</div>

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

```
                                                                                                 java/awt/BorderLayout
      javax/swing/JButtonbouton1bouton2javax/swing/JLabelNorth

```

compte/Main$2 WestEast  
compte/Main$3  
compte/Main$42  
3

```
             compte/Mainjava/lang/Object(Ljava/lang/String;)VsetSize(II)V

```

setLocationaddWindowListener"(Ljava/awt/event/WindowListener;)VgetContentPane()Ljava/awt/Container;  
add0(Ljavax/swing/JMenuItem;)Ljavax/swing/JMenuItem;((Ljavax/swing/JMenu;)Ljavax/swing/JMenu;  
setJMenuBar(Ljavax/swing/JMenuBar;)Vjava/awt/Container setLayoutjava/awt/LayoutManager;)V)(Ljava/awt/Component;Ljava/lang/Object;)  
VaddActionListener"(Ljava/awt/event/ActionListener;)V+(Ljavax/swing/JLabel;Ljavax/swing/JFrame;)Vpack  
setVisible(Z)V!01234/_·±56  
78 9:4Å  
á»Y·L»Y·M,d,dd¶ ,»  
Y·  
¶  
N»Y·:»Y·:¶W»Y·:¶W,¶-»Y·¶Y·:»Y·» Y+·!: - "¶#-$¶#%¶#»&Y·’¶(»)Y ,·_¶»,Y ,·-¶+,¶.,¶/±5f  
%0#5$@%K&S’(d)j\*u+,-./¥0­1¹8È\>×DÛEàF6f  
á;\<  
×=\>Í?@5¬AB@¡CDKEF\GHaIJVKLLM NOZ" PK  
íM4 íAMETA-INF/PK  
ìM4Lç¿¿€’META-INF/MANIFEST.MFPK  
FM4íAcompte/PK  
ìM4g8žNN€=compte/Main$1.classPK  
ìM4›œhh€Œcompte/Main$2.classPK  
ìM4)Ì\_\_€Ucompte/Main$3.classPK  
ìM4þ@îòbb€å compte/Main$4.classPK  
compte/Main.classñFEOF

[/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.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/8 "2016-02-20T12:19:11Z")

</div>

u as mis un retour à la ligne entre \<\<EOF et le début de ton code java ?

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/9 "2016-02-20T12:19:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:19 UTC](https://www.debian-fr.org/t/appli-java-lancement-par-simple-click/2565/10 "2016-02-20T12:19:13Z")

</div>

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`
