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);
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 :
Pour lire la sortie standard, utilisez un objet BufferedReader :
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
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); }
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); }
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!