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
stattRuntime
und Sie brauchen, um uns zu zeigenreadCmd()
. der Fehler liegt wohl in es. - okay,
readCmd
scheint ok. vielleicht einfach versuchen, einPrintWriter
Verpackung IhrerOutputStream
. 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";
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies : ich war in der Lage, eine Datei zu erstellen, in mein Standard-Temp-Verzeichnis mit allen verbindungen
Können Sie auch eine Instanz von
java.util.Scanner
zum Lesen der Ausgabe des Befehls.