IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

.bat à partir de code java


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 193
    Points : 65
    Points
    65
    Par défaut .bat à partir de code java
    Salut!!

    Je voudrais savoir comment lancer un programme .bat à partir de mon application (lorseque je clique sur un bouton).

    J'ai utilisé ce code mais ça n'a pas marché!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      Runtime rt = Runtime.getRuntime();
                  try {
     
     
                 Process proc = rt.exec("cmd /c c:\\prog.bat");
     
                       }
               catch (java.io.IOException e) {System.out.println("Problème de lancement");}
     
                    }
    Quelqu'un aurait il une idée?!

    P.S:je travaille sous Windows XP

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut traiter les flux d'entrée/sorties du process...

    Lire : Runtime.exec() n'est pas des plus simple...
    Ou rechercher sur le forum pour plus de détail (sujet très récurrent)

    a++

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Citation Envoyé par mmb04
    Salut!!

    Je voudrais savoir comment lancer un programme .bat à partir de mon application (lorseque je clique sur un bouton).

    J'ai utilisé ce code mais ça n'a pas marché!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      Runtime rt = Runtime.getRuntime();
                  try {
     
     
                 Process proc = rt.exec("cmd /c c:\\prog.bat");
     
                       }
               catch (java.io.IOException e) {System.out.println("Problème de lancement");}
     
                    }
    Quelqu'un aurait il une idée?!

    P.S:je travaille sous Windows XP
    J'aime bien ce niveau de précision...
    Le "ça a pas marché", ça veut dire que ton PC est devenu fou, qu'il a commencé à faire des étincelles puis par prendre feu ?

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Non mais ça veut dire que l'application ne s'exécute pas sachant que j'utilise ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String[] cmd = new String[3];
                    cmd[0] = "cmd.exe" ;
                    cmd[1] = "/C" ;
                    cmd[2] = "C:\\BUREAU\\fIC.bat"; 
                   Process proc = rt.exec(cmd);
    et ça marche pour tous les .bat et .exe mais pas pour celui que je veux!!

    voici un aperçu de ce que contient mon .bat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    set APPDATA=C:\Documents and Settings\user\Application Data 
    set CLIENTNAME=Console 
    set COMPUTERNAME=cpt 
    set ComSpec=C:\WINDOWS\system32\cmd.exe 
    set CONFIG_PATH=C:\ora9\jre\1.4.2\bin\client;C:\ora9\jre\1.4.2\bin;C:\ora9\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;c:\uti;c:\ora8\bin;c:\msdev\vc98\bin;c:\msdev\common\msdev98\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\gzip 
    set DEBUG=0 
    set DRIVE_COMPIL=M 
    set DRIVE_FILE=P 
    set DRIVE_TOOLS=R 
    set EXTERNE=P:\EXTERNE 
    set FP_NO_HOST_CHECK=NO 
    set HOME=C:\ 
    set HOMEDRIVE=C: 
    set HOMEPATH=\Documents and Settings\user 
    c:\tgr\htyg\prog.exe
    Merci pour votre aide!!!

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    pour les flux voir le tuto indiqué plus haut ....
    sinon il faut faire attention au repertoire courant,le bat s'executera dans le repertoire où s'execute ton programe java ... (peut être que ton bat s'execute mais que tu ne t'en rend pas compte car il ne s'execute pas à l'endroit voulu )

  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    salut,

    Ce genre de chose marche très bien de mon coté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Runtime.getRuntime().exec("cmd /c javaw -jar automatcrl.jar", null,
    					new File(Start.SUPPLIER.getLoadParams().repCrl + "\\"));
    grosso modo j'execute une commande dans un repertoire donné

  8. #8
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Pourquoi ne pas lancer directement l'application "c:\tgr\htyg\prog.exe" en spécifiant directement les variables d'environnement à la méthode exec().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    String[] cmdarray = { "c:\\tgr\\htyg\\prog.exe" };
    String[] envp = { "APPDATA=C:\\Documents and Settings\\user\\Application Data", 
        "CLIENTNAME=Console", 
        "COMPUTERNAME=cpt", 
        "ComSpec=C:\\WINDOWS\\system32\\cmd.exe", 
        "CONFIG_PATH=C:\\ora9\\jre\\1.4.2\\bin\\client;C:\\ora9\\jre\\1.4.2\\bin;C:\\ora9\\bin;C:\\Program Files\\Oracle\\jre\\1.3.1\\bin;C:\\Program Files\\Oracle\\jre\\1.1.8\\bin;c:\\uti;c:\\ora8\\bin;c:\\msdev\\vc98\\bin;c:\\msdev\\common\\msdev98\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;c:\\gzip", 
         "DEBUG=0", 
         "DRIVE_COMPIL=M", 
         "DRIVE_FILE=P", 
         "DRIVE_TOOLS=R", 
         "EXTERNE=P:\\EXTERNE", 
         "FP_NO_HOST_CHECK=NO", 
         "HOME=C:\\", 
         "HOMEDRIVE=C:", 
         "HOMEPATH=\\Documents and Settings\\user" };
    Process process = Runtime.getRuntime().exec(cmdarray, envp);
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. [XSLT] Ajout du Ref XSL dans XML a partir du code JAVA
    Par rasenganguy dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 25/01/2010, 19h40
  2. lancement d'un service windows a partir un code JAVA
    Par charouel dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/12/2009, 07h54
  3. [Metro] Génération de WSDL à partir de code java
    Par Eògan dans le forum Services Web
    Réponses: 1
    Dernier message: 23/03/2009, 13h56
  4. Exécution d'un script à partir de code java
    Par ridecat dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2008, 19h09
  5. Réponses: 2
    Dernier message: 11/01/2007, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo