Ich versuche ein Programm in Java zu erstellen, das einige Informationen über den Computer sammelt, auf dem es ausgeführt wird. Ich erhalte die Informationen durch die Dinge mit wie:Java bestimmte Zeile von Runtime erhalten?
Process rt = Runtime.getRuntime().exec("ipconfig");
Im exec („ipconfig“) Befehl, es viel mehr Informationen gibt, die ich für speziell gefragt bin. Zum Beispiel brauche ich die IP-Adresse. In dem Befehl wird es als "IPv4" (oder etwas Ähnliches) bezeichnet. Ich habe BufferedReader verwendet, um den InputStream des Prozesses zu erhalten, und ich habe den InputStream in String konvertiert und den indexOf ("IPv4") erhalten. Leider ist das soweit ich kann. Ich muss es wieder in eine Zeichenfolge konvertieren, die nur die Zeile mit der Bezeichnung "IPv4" enthält.
Ich habe hier andere Fragen gefunden, die dem sehr ähnlich sind, aber ich kann sie nicht verstehen. Könnte jemand bitte erklären, wie man das genau im Detail macht?
Update: Ich muss dies von der Runtime-Methode tun. Ich weiß, dass ich die InetAddress-Methoden verwenden könnte, aber das ist nur ein Beispiel dafür. Ich werde andere Informationen aus der Laufzeit bekommen, und ich muß wissen, wie
Wenn Sie zu dem Punkt, dass Sie verwendet haben 'indexOf' und hat es funktioniert, dann warum nicht einfach 'StringString()' und bekommen, was Sie wollen (vorausgesetzt, Sie kennen die Syntax von dem, was Sie wollen)? – Idos
Sie könnten auch daran interessiert sein, andere Möglichkeiten zu suchen, dies zu tun. Wenn Sie diesen Befehl ausführen, funktioniert Ihr Programm nur unter Windows, glaube ich. Wie wäre es mit so etwas? http://stackoverflow.com/questions/8765578/get-local-ip-address-without-connecting-to-the-internet – ThePerson
Sie können die Ausgabe mit 'grep' auf Ihre bevorzugte reduzieren. –