Lancer un .bat à partir d'une interface graphique

Résolu
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 - 15 juil. 2008 à 17:02
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 - 16 juil. 2008 à 13:28
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

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 13:14
de rien..

tu peux essayer de faire java.awt.Desktop.getDesktop().open("tonfichier.bat");
3
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 10:01
Salut,

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

http://ydisanto.developpez.com/tutoriels/j2se/runtime/
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 juil. 2008 à 10:09
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
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 12:23
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 12:25
c'est un fichier .bat alors essayes :

Runtime.getRuntime().exec("cmd /c tonfichier.bat");
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 12:37
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....
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 12:45
une petite erreur : /k au lieu de /c mais ça change rien ici : étrange :O
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 12:50
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....
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 13:02
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"));
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 13:10
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 ;)
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 13:24
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?
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 juil. 2008 à 13:26
Dans ce cas tu dois spécifier le chemin en plus : c'est pas bien pour la portabilité :(
0
agita Messages postés 13 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 2
16 juil. 2008 à 13:28
oui c sur....
en tout cas, un probleme de réglé grace à toi
0
Rejoignez-nous