Lancer un .bat à partir d'une interface graphique

[Résolu]
Signaler
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
-
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
-
Bonjour à tous!
je voulais savoir comment est ce qu'on lance un executable sous java, sous une interface graphique, afin de repartir sur ma console grâce au .bat...

d'ailleurs, pourriez vous me dire quelle est l'erreur dans mon code svp? avec celui-ci, je retourne à la console et le bouton ne disparait qu'à la fin de la simulation...
public

void actionPerformed(ActionEvent e){

if(e.getSource()==
bouton_start){

panel.remove(
bouton_start);

panel.setEnabled(
false);

lancer_simulation();

}

}

merci de vos reponses :)

13 réponses

Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
de rien..

tu peux essayer de faire java.awt.Desktop.getDesktop().open("tonfichier.bat");
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
Salut,

Runtime.getRuntime().exec(...);

http://ydisanto.developpez.com/tutoriels/j2se/runtime/
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

"je voulais savoir comment est ce qu'on lance un executable sous java,
sous une interface graphique, afin de repartir sur ma console grâce au
.bat..."
>> recherche dans le forum et les sources du site il y a la réponse...

"d'ailleurs, pourriez vous me dire quelle est l'erreur dans mon code
svp? avec celui-ci, je retourne à la console et le bouton ne disparait
qu'à la fin de la simulation..."
>> Ici, tant que tu es dans le 'if' tu es dans le main-thread donc tu n'auras rien avant de finir ton traitement... une solution serait de détacher le traitement dans un Thread...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
Twinuts, excuse moi mais avant de poser la question j'avais deja essaye les propositions sur le forum et ca ne fonctionnait pas :$ je ne me serai pas permise de vous déranger sinon...mais concernant l'histoire du thread tu as raison :)

chatbour, effectivement c'est la commande que j'ai lue mais elle ne fonctionne pas chez moi...je pense que mon problème vient du fait que mon fichier .bat utilise pour la compilation des classes qui sont dans d'autres dossiers etc..toujours une histoire de chemin....


 


merci pour vos reponses, je suis rassurée :)
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
c'est un fichier .bat alors essayes :

Runtime.getRuntime().exec("cmd /c tonfichier.bat");
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
hum :S
non plus...pourtant ca marche tres bien quand je lance la mm commande (cad cmd /c monfichier.bat) dans l'invite de commande et mon fichier se trouve bien a la racine de mon projet....
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
une petite erreur : /k au lieu de /c mais ça change rien ici : étrange :O
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
je l'ai mis pour l'action d'un bouton..ca ne devrait rien changer non?
voila le code de la fonction :

public
void actionPerformed(ActionEvent e){

if(e.getSource()==
bouton_start){

panel.remove(
bouton_start);

panel.setEnabled(
false);

try {

Runtime.getRuntime().exec(

"cmd /k bancdetest_console.bat");}

catch (IOException e1) {

// TODO Auto-generated catch blocke1.printStackTrace();

}

label.setText(
"La simulation est terminée");

panel.add(
label);

//lancer_simulation();

}

}

je voulais le faire en attendant que ce soit presentable avec la version graphique....
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
Si tu veux juste aller à la console tu peux faire :

// à partir de la version 6 du JDK
java.awt.Desktop.getDesktop().open(new java.io.File("C:/WINDOWS/system32/cmd.exe"));
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
jaurai prefere que le fichier .bat se lance, ca eviterait de devoir changer de chemin quand on sera dans la console etc :$
tant pis je ferai sans, il va falloir que je finisse la version graphique le plus tot possible.
merci ;)
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
ca marche :D
thks ;)

et si on veut changer de dossier, cad ouvrir un fichier qui nest pas dans la racine du projet c possible?
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
18
Dans ce cas tu dois spécifier le chemin en plus : c'est pas bien pour la portabilité :(
Messages postés
13
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
22 juillet 2008
2
oui c sur....
en tout cas, un probleme de réglé grace à toi