¿Cómo extraer datos de otro programa en java?

Tengo una aplicación que hice en java, que abre un programa hecho en ms dos, mi probrlema es el siguiente este programa en ms dos mueve un brazo mecánico, este programa recibe ciertas pulsaciones y se reflejan en pantalla, quisiera saber si pudiera extraer estos números que va arrojando en ms dos.

1 respuesta

Respuesta
1
Tienes suerte que quizás te pueda ayudar ya que he hecho algo parecido recientemente, pero en mi caso era ejecutar scripts de Linux desde Java.
Para el caso es lo mismo porque Java simplemente ejecuta lo que quieras en la linea de comandos del sistema en el que está. Supongo que tú estás ejecutando el programa MS-DOS (o más bien un programa en linea de comandos de windows, ya que MS-DOS ya no se usa). Si no es así tienes que indicarme cómo lo estás ejecutando.
En el caso de que sea lo que digo, puedes, además de ejecutar un comando desde java, recuperar la salida de ese programa por pantalla hacia Java:
// Ejecutamos el comando o ejecutable de linea de comandos que queramos
Process process =Runtime.getRuntime().exec("c:\programas\program.exe");
// Así cogemos la salida estandar (pantalla) de lo que ejecutamos
if (process.getInputStream()!=null){
BufferedReader is = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = is.readLine()) != null)
        log.debug(line); // Aquçi recuperamos cada linea de salida. Hacemos lo que queramos con ella. Yo esoy metiendola en un log
}
// Así cogemos la salida de error estándar (pantalla también, normalmente) de lo que ejecutamos.   Si algo falla tambien lo recuperamos
if(process. GetErrorStream()! =null){
BufferedReader is = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line;
while ((line = is.readLine()) != null)
log.debug(line);
}
exitCode = process.waitFor(); // Hacemos que Java espera a que acabe el proceso y recuperamos su codigo de salida (0 normalmente significa OK, otra cosa error)
Espero que sea lo que buscas. Recuerda cerrar la pregunta si todo va bien.
Cierra la pregunta si se solucionó tu duda.
Si ya lo has solucionado o no necesitas más ayuda te agradecería que cerraras la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas