Padre
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import java.io.BufferedReader import java.io.InputStreamReader fun main() { // Crear el proceso hijo, ruta para IntelliJ val processBuilder = ProcessBuilder("java", "-cp", "/Users/lamac/IdeaProjects/untitled/out/production/untitled", "ChildProcess") val childProcess = processBuilder.start() // Leer la salida del proceso hijo val inputStream = childProcess.inputStream val reader = BufferedReader(InputStreamReader(inputStream)) // Leer el mensaje completo (una cadena con las palabras separadas por comas) val outputMessage = reader.readLine() println("Mensaje recibido del proceso hijo: $outputMessage") // Convertir la cadena a un array de palabras val wordsArray = outputMessage.split(",").toTypedArray() // Mostrar las palabras del array println("Array de palabras recibido:") wordsArray.forEach { println(it) } // Finalizar el proceso hijo childProcess.waitFor() println("Proceso hijo finalizado con código de salida: ${childProcess.exitValue()}") } |
Hijo
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.io.OutputStreamWriter fun main() { val wordsArray = arrayOf("Hola", "desde", "el", "proceso", "hijo") // Convertir el array a una cadena, separada por comas val message = wordsArray.joinToString(",") // Escribir el mensaje en la salida estándar val outputStream = OutputStreamWriter(System.out) outputStream.write(message) outputStream.flush() } |