1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.lang.ProcessBuilder fun main() { val host1 = "www.example.com" val host2 = "www.google.com" executePingCommand(host1) executePingCommand(host2) } fun executePingCommand(host: String) { val processBuilder = ProcessBuilder("ping", "-c", "5", host) processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT) processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT) val process = processBuilder.start() process.waitFor() } |
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT)
: Esta línea configura la redirección de la salida estándar del proceso. ProcessBuilder.Redirect.INHERIT
significa que la salida estándar del proceso se redirigirá a la salida estándar de la aplicación que lo ejecuta. En otras palabras, los resultados del comando «ping» se imprimirán en la consola donde se esté ejecutando el programa Kotlin.
Este código en Kotlin utiliza la clase ProcessBuilder
para ejecutar comandos de ping en dos hosts diferentes (www.example.com
y www.google.com
) y muestra los resultados directamente en la consola. Aquí está la explicación línea por línea:
- Importación de la clase
ProcessBuilder
: Se importa la claseProcessBuilder
de la biblioteca estándar de Java, que se utiliza para crear y controlar procesos del sistema operativo. - Función principal
main
: Se define la funciónmain
, que es el punto de entrada del programa. - Definición de los hosts: Se definen dos variables
host1
yhost2
que contienen las direcciones de los hosts a los que se quiere hacer ping. - Llamadas a
executePingCommand
: Se llama a la funciónexecutePingCommand
dos veces, una para cada host, pasando las direcciones de los hosts como argumentos. - Función
executePingCommand
: Se define la funciónexecutePingCommand
que acepta una cadenahost
como argumento y ejecuta el comando de ping en ese host. - Creación del
ProcessBuilder
: Se crea un objetoProcessBuilder
para ejecutar el comandoping
con los argumentos-c 5
y el nombre del host. El argumento-c 5
especifica que se deben enviar 5 paquetes de ping. - Redirección de la salida y errores del proceso: Se configuran las redirecciones para que tanto la salida estándar como la salida de errores del proceso se hereden del proceso padre (el programa Kotlin). Esto significa que los resultados del ping se mostrarán directamente en la consola.
- Inicio del proceso: Se inicia el proceso utilizando el
ProcessBuilder
. - Esperar a que el proceso termine: Se espera a que el proceso termine antes de continuar. Esto asegura que el programa principal no continúe antes de que el proceso hijo haya completado su ejecución.