Lancer un fichier cmd

Résolu
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012 - 12 sept. 2006 à 14:59
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 - 13 sept. 2006 à 12:56
Bonjour,

Je chercher à lancer un fichier cmd.

Je fais ceci :
        Runtime r = Runtime.getRuntime();
        r.exec("C:\\Test.cmd");

mais il ne se passe rien, le fichier cmd n'est pas lancé et le compilateur Java ne rale pas.

Vous voyez ce qui ne va pas ?

Merci d'avance

10 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
13 sept. 2006 à 12:52
La commande start dans une invite de
commande ou un fichier .bat lance une autre invite de commande et
permet de lancer un fichier passé en paramètre.

Exemple:
<li>tu as un fichier c:\temp\test.bat qui contient: start exec.cmd
</li><li>tu as un fichier c:\temp\exec.bat qui contient: ping -t free.Fr</li>
Tu n'as plus qu'à faire :


      public static void main (String [] args) {

                  try {

                       
Runtime run = Runtime.getRuntime ();

                       
run.exec ("c:\\temp\\test.cmd");

                  }

                 
catch (IOException exception) {

                       
exception.printStackTrace ();

                       
System.exit (1);

                  }

      }

et la console te saute aux yeux, en train de faire un ping sur free.fr

Je pense que c'est ce que tu cherches à faire.
3
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
13 sept. 2006 à 12:56
Erratum: Pour l'exemple, ton  fichier c:\temp\test.bat contient: start c:\temp\exec.cmd
sinon il cherchera exec.cmd dans ton répertoire d'execution java.
3
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012
12 sept. 2006 à 15:20
Mise à jour :

En fait ça marche presque. Dans mon cmd il y avait une pause c'est pour ça que ça ne semblait rien faire.

Le problème c'est que j'aimerais que la fenêtre 'Dos' s'affiche. Pensez-vous qu'il y ai une option pour ça ?

J'ai même essayé ceci mais ça ne le fait pas non plus :

        Runtime r = Runtime.getRuntime();
        Process p = r.exec("C:\\WINNT\\system32\\CMD.EXE " + test.cmd);

Merci
0
cs_stillfelil Messages postés 108 Date d'inscription samedi 31 juillet 2004 Statut Membre Dernière intervention 12 septembre 2009 3
12 sept. 2006 à 16:35
Si tu veut executer une commande dos , tu met la commande directement  en parametre du exec
;-)
0

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

Posez votre question
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
12 sept. 2006 à 16:38
Salut
Si tu veux faire une pause dans ta console ( pour que l'utilisateur ait le temps de lire ce qu'il y a d'afficher), il faut rajouter PAUSE dans ton batch.
A++
0
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012
12 sept. 2006 à 16:46
Merci pour vos conseils mais en fait la console n'apparait pas du tout à l'écran et c'est ce que j'aimerai faire.

A mon avis il doit y avoir un paramètre à définir pour que le traitement tourne en montrant la fenêtre dos mais je vois pas quoi.

Du coup si je met un pause dans le fichier cmd, le programme JAVA attend que je fais un truc dans le fichier cmd mais comme la fenêtre dos n'apparait pas je ne peux pas continuer.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
12 sept. 2006 à 17:09
Salut :

C'est totalement logique que la fenêtre DOS n'apparait pas vu que tu utilise déja le mode console.

Si tu utilises une interface graphique tu auras cette fenêtre noire.
0
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012
12 sept. 2006 à 17:11
Ha bhen oui ça me semble logique ça. Comment je fais pour lancer ce traitement en mode graphique svp ?

Merci
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
12 sept. 2006 à 17:43
Salut :

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;



public class Fenetre extends JFrame implements ActionListener {
      private JButton bouton;



      public Fenetre () {
            super ("Lancer une commande MS-DOS");
            setBounds (50, 50, 300, 300);
            setDefaultCloseOperation (EXIT_ON_CLOSE);
            setResizable (false);
            getContentPane ().setLayout (null);



            bouton = new JButton ("Lancer une commande");
            bouton.setLocation (60, 100);
            bouton.setSize (bouton.getPreferredSize ());
            bouton.addActionListener (this);



            getContentPane ().add (bouton);
      }



      public void actionPerformed (ActionEvent event) {
            if (event.getSource () == bouton) {
                  try {
                        Runtime run = Runtime.getRuntime ();
                        run.exec ("notepad");
                  }
                  catch (IOException exception) {
                        exception.printStackTrace ();
                        System.exit (1);
                  }
            }
      }



      public static void main (String [] args) {
            Fenetre frame = new Fenetre ();
            frame.setVisible (true);
      }
}
0
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012
13 sept. 2006 à 10:00
Merci pour ce beau petit code mais remplace le "notepad" par "cmd". Qu'obtiens tu ?

Chez moi, il n'y a pas de fenêtre dos qui s'ouvre par contre dans la liste des process j'ai bien un 'cmd.exe' qui tourne et qui quitte la liste des process quand je quitte l'application Java.

C'est ennuyeu dans le cas où je voudrais que Java me lance un fichier cmd dans lequel il y a des pauses en cas d'erreur.

Qu'en penses vous ?
0
Rejoignez-nous