Maison > Java > javaDidacticiel > Comment puis-je récupérer la sortie de la ligne de commande à l'aide de Runtime.getRuntime() de Java ?

Comment puis-je récupérer la sortie de la ligne de commande à l'aide de Runtime.getRuntime() de Java ?

Patricia Arquette
Libérer: 2024-12-31 10:10:14
original
275 Les gens l'ont consulté

How Can I Retrieve Command Line Output Using Java's Runtime.getRuntime()?

Récupération de la sortie de ligne de commande à l'aide de Runtime.getRuntime() de Java

Pour exploiter la puissance des utilitaires de ligne de commande dans Java, les programmeurs utilisent souvent Runtime .getRuntime(). Bien que cette approche permette d’exécuter sans effort des programmes externes, la capture de leurs résultats peut s’avérer déroutante. Cet article dévoile les subtilités de la récupération du résultat de la ligne de commande à l'aide de Runtime.getRuntime().

Pour commencer, considérons cet exemple simplifié :

Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send", argument};
Process proc = rt.exec(commands);
Copier après la connexion

Par défaut, Runtime.getRuntime().exec () renverra un objet Process représentant le programme exécuté. Cependant, la sortie générée par le programme reste inaccessible via l'objet Process lui-même.

Pour récupérer la sortie, il faut se plonger dans les InputStreams associés à l'objet Process. Il y a deux InputStreams à considérer :

  • proc.getInputStream() : Ce flux donne accès à la sortie standard du programme exécuté.
  • proc.getErrorStream() : ce flux capture tous les messages d'erreur ou avertissements générés par le programme.

Pour lire la sortie standard, utilisez un objet BufferedReader :

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
Copier après la connexion

Grâce à stdInput, nous pouvons récupérer la sortie ligne par ligne en utilisant la méthode readLine().

while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
Copier après la connexion

Pour capturer les erreurs, suivez une approche similaire avec proc.getErrorStream().

BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
Copier après la connexion

En incorporant ces flux dans votre code, vous pouvez récupérer efficacement la sortie des programmes de ligne de commande exécutés via Runtime.getRuntime().

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