"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso executar programas externos com eficácia e recuperar sua saída em Java?

Como posso executar programas externos com eficácia e recuperar sua saída em Java?

Publicado em 15/11/2024
Navegar:177

How can I effectively execute external programs and retrieve their output in Java?

Executando programas externos em Java

Em seu programa Java, você está tentando executar um programa externo ("program.exe") usando o Runtime.exec( ) método. Embora não produza erros, o programa parece ser ineficaz.

O código fornecido utiliza o método Runtime.exec(params) para iniciar o programa externo. No entanto, este método tem limitações no tratamento de dados de entrada e saída entre o programa Java e o processo externo.

Para interagir efetivamente com um programa externo e recuperar sua saída, você pode utilizar a classe ProcessBuilder. Aqui está um exemplo que demonstra como executar o programa "program.exe" com parâmetros específicos:

ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\user\\Desktop\\program.exe",
        "C:\\Users\\user\\Desktop\\images.jpg", "C:\\Users\\user\\Desktop\\images2.txt");
Process process = processBuilder.start();

InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String line;
System.out.println("Output of running program.exe with parameters:");

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

Neste código, criamos uma instância do ProcessBuilder com os parâmetros necessários. O método start() é usado para iniciar o programa externo. Em seguida, usamos um InputStream para ler a saída do programa, convertê-la em caracteres usando um InputStreamReader e, finalmente, armazená-la em um BufferedReader para facilitar o processamento linha por linha.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3