Probleme reponse a l'excecution d'une commande par code

profiter Messages postés 205 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 15 mars 2013 - 8 juin 2012 à 17:56
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 10 juin 2012 à 19:32
bonjour
dans mon programme java j'excecute une commande a travers le code ca marche
mais en s'avancant dans le travail je me suis trouvé avec une commande qui necessite une reponse apres son execution
alors par programme java : je ne sais pas comment repondre mais dans la ligne de commande je repond avec oui et ca marche
avez vous une idée comment repondre a travers le code java
j'espere que vous avez compris la question :
voila le code que j'utilise pour excecuter les commandes :
public static String importer_certificat(String alias,String nom_certi,String nom_keystore,String pass_keystore)
    {
        try{

            String b = "keytool -import -alias "+alias+" -file "+nom_certi+" -keystore "+nom_keystore +" -storepass "+pass_keystore;
            System.out.println(b);
            Process p = Runtime.getRuntime().exec(b);
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String inputLine, tous = "";
            while ((inputLine = in.readLine()) != null)
            {
                tous += "\n"+inputLine;
                System.out.println(inputLine);
            } 
            return tous;
        
        }catch(Exception e)
        {
            e.printStackTrace();
            return e.getMessage();
        }
    }

merci bien

3 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
9 juin 2012 à 11:12
tu sais avoir les stream de ton process...
donc celui d'entrée aussi... (celui ou tu dois "écrire" oui...)
0
profiter Messages postés 205 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 15 mars 2013 8
10 juin 2012 à 16:53
je n'ai rien compris
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
10 juin 2012 à 19:32
^^ je recommence alors ^^

dans ton code, tu as :
p.getInputStream()

ce qui te permet d'avoir le flux de sortie (console) de ton processus, autrement dis tout ce que le process va écrire en console.

Et bien, si tu regardes bien, tu as aussi le getOutputStream()...

Rien ne t'empeche donc de regarder ce que le process écrit et lorsqu'il "demande" que tu dises "oui", tu fais un truc du genre
BufferedOutputStream writer = new BufferedOutputSream(p.getOutputStream());
writer.write("oui");
writer.flush();


le code est ptet avec l'une ou l'autre erreur, mais dans l'ensemble l'idée est la...
0
Rejoignez-nous