Appli java lancement par simple click


#1

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.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???


#2

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.


#3

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.


#4

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


#5

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.


#6

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


#7

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¶ ,»


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.


#8

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


#9

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.


#10

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