Como receber Strings de executáveis externos?

Por exemplo:

Tenho um programa geratexto.exe que digitando no console do dos ">geratexto.exe Domingo" gera no console uma string "Hoje é Domingo!".

Gostaria de saber como posso num aplicativo java executar esse comando "geratexto.exe domingo", e como posso armazenar numa variável String o retorno desse comando?

Você precisa usar o estático System.getRuntime().exec();

Passando como parâmetro a linha de comando a ser executado. ex: “c:\meuarquivo.exe”

E retorne para um objeto Process que então você poderá capturar através dele as mensagens enviadas pelo seu programa executável.

:slight_smile:

Nao sei mas nao teria que utilizar JNI???

Não é necessário usar JNI! Com Process é possível capturar.

Pequeno exemplo:

String cmd = "programa.exe";

Process proc = Runtime.getRuntime().exec(cmd);

BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader errorIn = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

String line;
while ((line = in.readLine()) != null) {
    System.out.println(line);
}