Je veux ouvrir une application externe en utilisant java.interagir avec l'application console en utilisant java
Process p = Runtime.getRuntime().exec("/Users/kausar/myApp");
Ceci exécute le processus comme je peux le voir dans le moniteur d'activité. Maintenant, le fichier que je lance est en fait une application console qui prend ensuite des commandes et donne une réponse basée sur ces commandes. par exemple, si je vais à la borne et mettre la même
Kausars-MacBook-Air:~ kausar$ /Users/kausar/myApp
myApp>
Maintenant, je peux donner des commandes à l'application comme par exemple
myApp> SHOW 'Hi There'
Ce sont des commandes prises en entrée du clavier dans l'application de la console, ce sont pas de paramètres. J'ai vu différentes approches avec des paramètres. J'ai essayé le suivant aussi mais je ne pouvais pas le faire fonctionner.
String res;
String cmnd = "SHOW \'Hi There\'";
OutputStream stdin = null;
InputStream stdout = null;
stdout = p.getInputStream();
stdin = p.getOutputStream();
stdin.write(cmnd.getBytes());
stdin.flush();
p.waitFor();
BufferedReader input = new BufferedReader(
new InputStreamReader(stdout));
while ((res = input.readLine()) != null) {
System.out.println(res)
}
input.close();
p.destroy();
Son affichage rien alors que la même procédure avec "/ bin/bash -c ls" fonctionne très bien. aidez s'il vous plaît!
Vous définissez stderr comme flux d'entrée et attribuez p.getInptStream à stdout. – Guanxi
@Guanxi corrigé, ce fut probablement erreur de pâte de copie, merci de le signaler – kausar