"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-15
Parcourir:100

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

Exécution de 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 génère 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 :

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);
}

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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3