J'essaie d'entrer une valeur dans une application externe en utilisant Java.Java - entrée de passe dans l'application externe C/C++
application Java ressemble à ceci:
Runtime runtime = Runtime.getRuntime();
// ... str build ...
proc = runtime.exec(str);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
bw.write(value);
bw.flush();
bw.close();
if (proc.waitFor() != 0)
// error msg
// the end
application se bloque à la méthode waitFor.
L'application externe ressemble à ceci:
welcome banner
please enter 8 character input:
bannière de bienvenue est imprimé à l'aide printf et l'entrée est prise avec SetConsoleMode/ReadConsoleInput. ReadConsoleInput lit un caractère et ils sont masqués avec un caractère *.
Aide
Omry, l'ordre est-il important? Je devrais d'abord lire le flux d'entrée/erreur, puis écrire? –
Omry, merci pour le code, je l'ai essayé, mais ça colle toujours à waitFor. –
Eh bien, si votre processus attend une entrée, vous devriez le fournir. vous pouvez pirater mon code pour imprimer sur System.out, ainsi vous verrez ce qui se passe avec votre processus. vous pouvez également juste terminer le fichier journal. assurez-vous d'utiliser proc.getOutputStream(). Write() pour envoyer des données à votre processus. –