Maison > Java > javaDidacticiel > Comment puis-je exécuter efficacement des programmes externes et récupérer leur sortie en Java ?

Comment puis-je exécuter efficacement des programmes externes et récupérer leur sortie en Java ?

Patricia Arquette
Libérer: 2024-10-31 04:28:30
original
506 Les gens l'ont consulté

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

Exécuter des programmes externes en Java

Dans votre programme Java, vous essayez d'exécuter un programme externe ("program.exe") à l'aide de Runtime.exec( ) méthode. Bien qu'il ne produise pas d'erreurs, le programme semble inefficace.

Le code fourni utilise la méthode Runtime.exec(params) pour lancer le programme externe. Cependant, cette méthode présente des limites dans la gestion des données d'entrée et de sortie entre le programme Java et le processus externe.

Pour interagir efficacement avec un programme externe et récupérer sa sortie, vous pouvez utiliser la classe ProcessBuilder. Voici un exemple qui montre comment exécuter le programme "program.exe" avec des paramètres spécifiques :

<code class="java">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);
}</code>
Copier après la connexion

Dans ce code, nous créons une instance ProcessBuilder avec les paramètres requis. La méthode start() est utilisée pour lancer le programme externe. Nous utilisons ensuite un InputStream pour lire la sortie du programme, la convertissons en caractères à l'aide d'un InputStreamReader et enfin la stockons dans un BufferedReader pour un traitement ligne par ligne plus facile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal