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 :

[API Shell] Dialogue avec la console


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé Avatar de Jose.N70
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut [API Shell] Dialogue avec la console
    Bonjour,

    J'ai une application Java qui lance des commandes (sous Linux) en lien avec TrueCrypt. Pour cela j'utilise l'API Shell (trouvée sur ce site).

    Sur les 3/4 des commandes pas de problèmes, mais je souhaite lancer une commande qui demande une action en console. Cette action est simple, elle consiste à appuyer sur la touche Entrée...

    J'aimerais donc savoir comment lancer ma commande et lorsque la console me le demande, simuler la touche entrée ?

    Merci pour votre aide

  2. #2
    Membre très actif Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 940
    Par défaut
    as-tu essayé de rediriger l'entrée standard du shell en entrée de ta commande
    cmd < infile
    et dans le fichier saisir un retour chariot
    .

  3. #3
    Membre confirmé Avatar de Jose.N70
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut
    Citation Envoyé par star Voir le message
    as-tu essayé de rediriger l'entrée standard du shell en entrée de ta commande
    cmd < infile
    et dans le fichier saisir un retour chariot
    .
    Bonjour,
    Et merci pour ta réponse, il n'y aurait pas autre chose qu'utiliser un fichier ?
    D'autant plus qu'il faut attendre que la console demande pour lui passer cette entrée, donc en lisant un fichier, il risque de passer l'entrée avant que la console ne le demande non ?

  4. #4
    Membre confirmé Avatar de Jose.N70
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut
    J'ai essayé ce genre de code mais il est bloquant :

    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
    34
    35
    36
     
    String[] commande = {"/bin/sh", "-c","sleep 5s && " + getcmdNewPassword(t)};
     
    final Process process = new ProcessBuilder(commande).redirectErrorStream(true).start();
    process.getErrorStream().close();
     
    new Thread() {
    		public void run() {
    			try {
    				BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    				BufferedWriter writter = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
    				try {
    					String s ="";								
    					while ((s = reader.readLine()) != null) { 
    						if (s.startsWith(question)){
    							writter.write("\n");
    							writter.flush();
    						}
    					}
    				} catch (IOException e) {
    					e.printStackTrace();
    				} finally {
    					if (reader !=null)
    						try {
    							reader.close();
    						} catch (IOException e) {
    							e.printStackTrace();
    						}
    					}
     
    			} finally {
    				if (process != null)
    					process.destroy();
    			}
    		}
    }.start();
    Vous constatez une erreur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dialoguer avec une application console
    Par fab56 dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2011, 15h55
  2. Creer un dialogue avec le shell ?
    Par fennec62 dans le forum Général Python
    Réponses: 13
    Dernier message: 20/02/2009, 16h14
  3. Dialoguer avec le shell d'un serveur en ssh
    Par Sylver--- dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2006, 09h03
  4. Créer Thread avec nouvelle console ? API Windows ?
    Par TimerMan dans le forum Windows
    Réponses: 4
    Dernier message: 26/11/2006, 23h27
  5. [C#] Lancer et dialoguer avec une console ?
    Par Selenite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/09/2004, 19h48

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