Hi,
ich wollte ein kleines Java Programm schreiben, dass mit
(Runtime.getRuntime()).exec("xterm");
ein xterm startet, dann sich die Input- und Output-streams holt, auf Eingaben vom Benutzer wartet und die dann über die Streams an den xterm weiterleitet. Das Problem bei mir ist, das die weiterleitung an den xterm nicht läuft. Ich schreibe einfach in den Outpustream mit hilfe der write() Methode die Befehle rein also z. B. output.write("ls"), dabei passiert leider gar nichts in dem xterm. Der Code sieht so aus:
public class CommandLine {
public static void main(String[] args){
CommandLine cmd = new CommandLine("xterm");
}
Runtime runtime;
Process cmdLine;
BufferedReader system_in;
BufferedReader cmdLine_in;
OutputStreamWriter cmdLine_out;
String system_line;
String cmdLine_line;
/** Creates a new instance of CommandLine */
public CommandLine(String cmdLineString) {
try{
runtime = Runtime.getRuntime();
cmdLine = runtime.exec(cmdLineString);
system_in = new BufferedReader(new InputStreamReader(System.in));
cmdLine_in = new BufferedReader(new InputStreamReader(cmdLine.getInputStream()));
cmdLine_out = new OutputStreamWriter(cmdLine.getOutputStream());
while(!(system_line = system_in.readLine()).equalsIgnoreCase("exit")){
cmdLine_out.write(system_line);
while((cmdLine_line = cmdLine_in.readLine()) != null){
System.out.println("OUT: "+cmdLine_line);
}
}
}
catch(IOException ioe){
System.err.println("## Exception ## : "+ioe.getMessage());
}
System.exit(0);
}
}
Hat jemand eine Lösung für mich?
MfG
Chris
Lesezeichen