Maison >Java >javaDidacticiel >Comment puis-je capturer et imprimer la sortie des programmes de ligne de commande à l'aide de Runtime.getRuntime() de Java ?
Lorsque vous utilisez Runtime.getRuntime() de Java pour exécuter des commandes d'invite de commande à partir de votre programme, vous pourriez rencontrer la difficulté de capturer la sortie renvoyée par la commande. Examinons le problème et découvrons comment récupérer et imprimer la sortie souhaitée à l'aide d'une méthode robuste.
Dans votre approche, tenter d'imprimer la procédure de l'objet Process à l'aide de System.out.println() ne donnerait aucun résultat significatif. résultats. Au lieu de cela, vous devez canaliser l'InputStream de la commande exécutée vers un BufferedReader pour accéder et ensuite imprimer la sortie.
Voici un extrait de code mis à jour et entièrement fonctionnel :
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-get t"}; Process proc = rt.exec(commands); BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); // Read the output from the command System.out.println("Here is the standard output of the command:\n"); String s = null; while ((s = stdInput.readLine()) != null) { System.out.println(s); } // Read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); }
En utilisant BufferedReader , vous pouvez lire de manière itérative les lignes de sortie et les afficher dans votre programme. Cette approche fournit un moyen propre et efficace de gérer à la fois la sortie standard et les erreurs potentielles de la commande exécutée.
Référez-vous au Javadoc officiel pour Runtime.getRuntime() pour une documentation complète et des informations sur des options supplémentaires telles que ProcessBuilder, qui offre un contrôle avancé sur la gestion des processus.
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!