Cómo abrir un cmd dentro del programa Java y ejecutar la función principal dentro de él
Puedo abrir un cmd así con cualquier comando:
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c start command", null, new File(newDir));
O cualquier otro comando similar con proceso,
¿Cómo puedo abrir un cmd dentro de un programa en Java y ejecutar la función principal dentro de él, así?
rt.exec("cmd.exe", mypackage.myclass.main, args);
¿Alguien puede ayudar?
davy.ai
Desafortunadamente, no es posible ejecutar directamente una función principal de Java desde una ventana de comandos abierta por un programa de Java. Sin embargo, lo que puede hacer es compilar y ejecutar el programa de Java por separado desde la ventana de comandos, y luego utilizar la clase
ProcessBuilder
para ejecutar el programa de Java compilado desde dentro del programa de Java. A continuación se muestra un código de ejemplo:Este código crea un nuevo
ProcessBuilder
que ejecuta el comandojava
con el argumentomipackage.miclase
, que es el nombre totalmente calificado de la clase de Java que contiene la función principal que desea ejecutar. Luego redirige las salidas y errores del proceso a la consola, y comienza el proceso. Finalmente, espera a que el proceso termine antes de salir del programa de Java.