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

Entrée/Sortie Java Discussion :

dialoguer avec un processus


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut dialoguer avec un processus
    Bonjour à tous

    j'essaye d'exécuter une commande DOS depuis un composant JTextArea et récupérer le résultat dans le même composant.

    voici le code de la classe <Interpreteur>, classe possédant une méthode statique <compile> qui exécute la commande tapée et retourne le résultat dans une String :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     import java.io.*;
     
     class Interpreteur {
     
     	/* exécute une commande passée en paramètre et retourne le résultat dans une String */
    	public static String compile(String chaine) {
     		String str = "";
     		try {
     			Process process = Runtime.getRuntime().exec("cmd /c " + chaine);
     			BufferedInputStream br = new BufferedInputStream(process.getInputStream());		
     
     			int car_lu;
     			while((car_lu = br.read()) != -1) {
     				str += (char)car_lu;
     			}
     
     			br.close();
     		}
     		catch(IOException e) {
     			e.printStackTrace();
     		}
     
     		return str;
     	}
     
     
     
     	/* main pour le test */
     	public static void main(String[] args) {
     		System.out.println(Interpreteur.compile("dir"));
     
     	}
     }

    jusqu'à ici, ça marche nickel : le problème c'est que je ne peux pas "dialoguer" avec la commande exécutée, en d'autre termes je ne peux pas utiliser des commandes comme time, date, label... qui t'invitent à taper une chose par la suite. Que faire ?

    Merci d'avance..

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Process process = Runtime.getRuntime().exec("cmd /c " + chaine); 
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(process
          .getOutputStream()));

  3. #3
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut
    Merci bien muad'dib je vais essayer ça tout de suite.

  4. #4
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut
    ça reste le problème de détecter quand-est ce que le processus attend une entré..

    de plus, quand j'essaye d'exécuter une commande comme time, la lecture du résultat ne se termine pas avec le code présenté plus haut car je ne peux pas détecter le clignotement du curseur à la fin..

    Bon voilà j'ai voulu te tenir en courant Bonne journée..

  5. #5
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    À toi d'établir un protocole de communication entre tes 2 processus. Bon courage.

Discussions similaires

  1. [C#] Lancer et dialoguer avec une console ?
    Par Selenite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/09/2004, 19h48
  2. boîte de dialogue avec image de fond + texte
    Par Eugénie dans le forum MFC
    Réponses: 13
    Dernier message: 31/08/2004, 13h32
  3. Boite de dialogue avec opengl
    Par inddzen dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/04/2004, 20h25
  4. dialoguer avec un serveur RADIUS
    Par jypee76 dans le forum Développement
    Réponses: 4
    Dernier message: 12/08/2003, 10h06
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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