Maison >Java >javaDidacticiel >Comment capturer la sortie de programmes externes exécutés avec des paramètres supplémentaires en Java ?
Lorsque vous essayez d'exécuter un programme externe à partir d'une application Java et de lui transmettre des paramètres, vous pouvez rencontrer une situation où le Le programme s'exécute sans aucune erreur mais ne parvient pas à effectuer l'action prévue.
Dans l'exemple de code que vous avez fourni, vous utilisez la méthode Runtime.getRuntime().exec() pour exécuter le programme externe. Cette méthode prend un tableau de chaînes comme argument, où le premier élément est la commande à exécuter et les éléments suivants sont les arguments à transmettre à la commande.
Le problème dans votre code est que vous ne capturez pas correctement la sortie du programme externe. Pour obtenir le résultat et vérifier le comportement du programme, vous pouvez utiliser le code modifié suivant :
<code class="java">Process process = new ProcessBuilder( "C:\Users\user\Desktop\program.exe", "C:\Users\user\Desktop\images.jpg", "C:\Users\user\Desktop\images2.txt" ) .start(); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; System.out.printf("Output of running %s is:", Arrays.toString(params)); while ((line = br.readLine()) != null) { System.out.println(line); }</code>
Dans ce code, nous utilisons la classe ProcessBuilder pour créer un nouveau processus qui exécuter le programme externe. La méthode start() est ensuite utilisée pour démarrer le processus.
Pour capturer la sortie du processus, nous créons un InputStream à partir du processus, un InputStreamReader pour envelopper le InputStream et un BufferedReader pour lire les lignes du InputStreamReader.
Nous utilisons ensuite la méthode readLine() de BufferedReader pour lire chaque ligne de sortie du processus. Enfin, les lignes de sortie sont imprimées à l'aide de l'instruction System.out.println().
En utilisant cette approche, vous pouvez exécuter des programmes externes à partir de Java et capturer leur sortie, y compris les erreurs ou messages qu'ils peuvent produire. . Vous pouvez ensuite utiliser cette sortie pour poursuivre le traitement ou afficher les résultats.
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!