Di solito uso java.lang.ProcessBuilder e java.lang.Process per eseguire programmi da riga di comando esterni e funziona correttamente per i comandi eseguiti correttamente. Ad esempio, ciò sarebbe "myProgram" con l'argomento "myArg" nella directory di lavoro:eseguire un'applicazione da riga di comando interattiva da java
List<String> commandLine = new ArrayList<String>();
commandLine.add("myProgram");
commandLine.add("myArg");
ProcessBuilder builder = new ProcessBuilder(commandLine);
builder.redirectErrorStream(true);
Process process = builder.start();
Tuttavia, dire che volevo eseguire uno script o un programma o qualcosa che ha avuto input interattivo (me è richiesto di più input dopo l'avvio). Posso farlo in Java con codice simile a quello sopra, o ho bisogno di un approccio diverso? O c'è qualche biblioteca che può aiutarmi con questo?
con stdin e stdout vuoi dire System.in e System.out? – 11684
@ 11684 Sì, ho aggiornato la risposta. –
Grazie! Sono stato alla ricerca di questo per un bel po '. – dantiston