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

API standards et tierces Java Discussion :

[Système][Runtime] Lancement d'un .bat avec java


Sujet :

API standards et tierces Java

  1. #1
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut [Système][Runtime] Lancement d'un .bat avec java
    Bonjour à tous,

    J'ai trouvé ce code sur le net qui permet de lancer un .bat avec java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class CEL {
     
    	Public static void main(String[] args)	{
    		String cmd = "cmd /c C:\\CEL.bat";
    		try { 
                Runtime r = Runtime.getRuntime(); 
                Process p = r.exec(cmd);
                //p.waitFor();//si l'application doit attendre a ce que ce process fini 
            }catch(Exception e) { 
                System.out.println("erreur d'execution " + cmd + e.toString()); 
            } 
        }
    Mais rien ne se passe une invit de commande ne doit pas s'ouvrir ou quelque chose comme ca ?
    Sachant en plus que mon .bat attend que je lui entre un parametre pour continuer.

    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Rien ne va s'ouvrir par miracle. Ton programme doit lui fournir les données via la méthode getOutputStream().
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    A priori, tu dois faire au moins une petite IHM, ne serait que récupérer le flux du process lancé, l'afficher dans une fenetre, et mettre un petit champ de saisie pour lui envoyer ton parametre dans un Stream...

  4. #4
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Citation Envoyé par jowo
    Rien ne va s'ouvrir par miracle. Ton programme doit lui fournir les données via la méthode getOutputStream().
    tu peux expliciter s'il te plait

  5. #5
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Ton script attend les données sur son entrée standard. Il faut lui fournir ces données en utilisant la méthode getOutputStream(). C'est à ton programme Java d'envoyer ces données.

    ghorgor t'a donné une bonne piste à suivre.
    Bien le bonjour chez vous
    Jowo

  6. #6
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    et dans le cas ou mon .bat n'attends rien comme parametre. Est-ce normal que cela ne marche pas ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Oui, c'est tout à fait normal.

    Car ton processus lancé avec la méthode exec() peut bloquer sous 3 conditions:

    -Il attend une entrée mais rien lui est fourni.

    - Il écrit en sortie standard mais personne vient le lire (tampon de sortie est plein).

    -Il écrit en sortie d'erreur mais personne vient lire cette sortie (tampon de sortie est plein).


    Il est bon à savoir que ces tampons sont de petite taille (j'en ignore la taille réelle).
    [/list]
    Bien le bonjour chez vous
    Jowo

  8. #8
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    et donc comment le faire marcher.
    Si tu ne l'avais pas encore remarqué je suis un super débutant en java.

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Tout dépend de ton script.

    Attend-il des données?

    Ecrit-il des données sur la console?

    As-tu vraiment besoin de ce script?
    Bien le bonjour chez vous
    Jowo

  10. #10
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Bon je t'explique le truc.

    J'avais écrit un programme en omnimark. Pour le lancer, j'avais créer un .bat.
    La j'avais deux solutions, soit réecrire mon programme en java, soit lancer le .bat avec java.

    Je pensais que la seconde solution serait beaucoup plus facile mais finalement j'en suis pas sur

    Mon programme omnimark écrit des traces dans la console et aussi les résultats dans un fichier.

  11. #11
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c""start ***.bat"});
    ca marche pas ça ?

  12. #12
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    non ca marche pas non plus.

    En fait je me suis lancé sur la traduction du code omnimark en code java

    Merci à Tous

Discussions similaires

  1. Lancer un .bat avec Java -> cmd.exe inactif
    Par frenchsting dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 28/10/2010, 12h10
  2. Réponses: 0
    Dernier message: 01/09/2009, 15h25
  3. [Runtime] executer un script shell avec java
    Par d_hazem dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 17/03/2009, 10h02
  4. [Inno Setup] Problème de lancement de fichier bat avec Java
    Par oliviercotedor dans le forum Outils
    Réponses: 3
    Dernier message: 13/12/2007, 16h27
  5. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54

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