Je dois démarrer l'exécutable externe de telle sorte que l'utilisateur puisse interagir avec le programme qui vient d'être démarré.Démarrage de l'exécutable externe à partir du code Java avec la redirection des flux
Par exemple, dans OpenSuse Linux, il existe un gestionnaire de paquets - Zypper. Vous pouvez lancer zypper en mode commande et lui donner des commandes comme installer, mettre à jour, supprimer, etc. Je voudrais l'exécuter à partir du code Java d'une manière dont l'utilisateur pourrait interagir avec lui: entrer des commandes et voir la sortie et les erreurs du programme qu'il a démarré.
Voici un code Java j'ai essayé d'utiliser:
public static void main(String[] args) throws IOException, InterruptedException {
Process proc = java.lang.Runtime.getRuntime().exec("zypper shell");
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
char ch;
while ((ch = (char)br.read()) != -1)
System.out.print(ch);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
}
Mais malheureusement je ne peux voir sa sortie:
zypper>
mais peu importe ce que j'écris, mon entrée ne touche pas programme qui a été démarré. Comment puis-je faire ce que je veux?
Nous vous remercions de votre réponse. Cela a aidé! –