Problem writing data from PrintStream to "Console as Process" and not "console as System.out" in Java

53 Views Asked by At

in Java 8, windows 10, i have a text app, i want to open a console and write something there,

first try is:

    String [] cmd = {"cmd.exe", "/c", "start"};
    ProcessBuilder f = new ProcessBuilder(cmd);
    f.redirectErrorStream(true);
    Process p = f.start();
    PrintStream printStream=new PrintStream(p.getOutputStream());
    //
    System.setOut(printStream);
    System.out.println("this write in CMD"); //did not work 

second try is:

    printStream.println("this write in CMD");//did not work 

Can any body Help?

1

There are 1 best solutions below

1
DuncG On BEST ANSWER

Launch conhost.exe instead, and write to the stdin of the retained Process, or if you redirect your output stream to the process writes with System.out will appear in the new console window:

String [] cmd = {"conhost.exe"};
ProcessBuilder f = new ProcessBuilder(cmd);
f.redirectErrorStream(true);
Process p = f.start();
PrintStream printStream=new PrintStream(p.getOutputStream());
System.setOut(printStream);
System.out.println("dir");