java-schreiben Sie den Befehl netstat in der cmd

Mein Ziel ist, drucken Sie alle internet-verbindungen auf meinem computer. Wenn ich "netstat" auf der cmd bekomme ich die internet-verbindungen Liste. Ich wollte das gleiche zu tun in java automatisch.

Mein code:

Runtime runtime = Runtime.getRuntime();

process = runtime.exec(pathToCmd);

byte[] command1array = command1.getBytes();//writing netstat in an array of bytes
OutputStream out = process.getOutputStream();
out.write(command1array);
out.flush();
out.close();

readCmd();  //read and print cmd

Aber mit diesem code bekomme ich C:\eclipse\workspace\Tracker>Mais? anstatt der Liste der verbindungen. Natürlich arbeite ich mit eclipse in windows 7. Was mache ich falsch? Ich habe in ähnlichen Themen, aber ich kann nicht finden, was ist falsch. Danke für die Antworten.

EDIT:

public static void readCmd() throws IOException {

    is = process.getInputStream();
    isr = new InputStreamReader(is);
    br = new BufferedReader(isr);
    String line;

    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
}
  • sollten Sie verwenden ProcessBuilder statt Runtime und Sie brauchen, um uns zu zeigen readCmd(). der Fehler liegt wohl in es.
  • okay, readCmd scheint ok. vielleicht einfach versuchen, ein PrintWriter Verpackung Ihrer OutputStream. Ich habe auch auf dieses problem vor einiger Zeit. Weiß immer noch nicht, warum das passiert.
  • Wie ist command1 definiert?
  • public static String command1 ="netstat";
InformationsquelleAutor Miigueel | 2013-03-31
Schreibe einen Kommentar