Ich versuche, einen Windows-Befehl mit Process Builder auszuführen. Ich bin mir nicht sicher, warum es mit 1 endet, da ich glaube, dass ich die richtige Eingabe gegeben habe. Es wäre toll, wenn irgendjemand es sehen und führen könnte, wo ich vielleicht falsch liege?Process Builder akzeptiert keine Eingabe über getOutputStream
try{
ProcessBuilder pb = new ProcessBuilder("runas","/noprofile","/user:alex", "cmd");
Process p = pb.start();
OutputStream os = p.getOutputStream();
PrintStream ps = new PrintStream(os);
ps.println("password");
ps.flush();
System.out.println(p.waitFor());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String resultLine = in.readLine();
while (resultLine != null) {
System.out.println(resultLine);
resultLine = in.readLine();
}
}
catch (IOException e) {
e.printStackTrace();
}
Ausgang:
Geben Sie das Kennwort für alex:
Überprüfen Sie den Fehlerstrom erhalten – Binu
To Fehler-Stream einfach zu bekommen, um es mit 'pb.redirectErrorStream (true)' zu stdout umleiten. Aber [vielleicht ist es überhaupt nicht möglich] (https://stackoverflow.com/q/25664203/6730571) ... vielleicht akzeptiert 'runas' kein Passwort von stdin –
Ich habe das auch versucht. Kein Glück. Nicht sicher, warum es 1 als Exit-Code zurückgibt. –