Wie führe ich einen externen Befehl (Prozess) aus Kotlin-Code aus?
Hallo zusammen! Ich habe gerade angefangen, Kotlin zu lernen, und schreibe eine kleine Konsolenanwendung. Ich muss einen externen Befehl ausführen, zum Beispiel ping starten oder eine Datei mit cp kopieren. In Java habe ich Runtime.getRuntime().exec() verwendet, aber in Kotlin sehe ich, dass es eingebaute Funktionen wie ProcessBuilder gibt, aber ich verstehe nicht ganz, wie man sie benutzt.
Ich habe versucht, diesen Code zu schreiben:
```kotlin
fun main() {
val command = "ping -c 4 google.com"
val process = Runtime.getRuntime().exec(command)
val reader = BufferedReader(InputStreamReader(process.inputStream))
var line: String?
while (reader.readLine().also { line = it } != null) {
println(line)
}
}
```
Aber er gibt nur die erste Zeile aus und hängt sich auf. Mache ich etwas falsch? Außerdem habe ich gehört, dass es in Kotlin einen idiomatischeren Weg gibt, als Java-Klassen zu verwenden. Könnt ihr mir sagen, wie man externe Befehle richtig aufruft? Ich muss nicht nur starten, sondern auch die Ausgabe lesen und mögliche Fehler behandeln.