Piping avec Runtime.exec()
En Java, utiliser des opérations de tuyauterie avec Runtime.exec() peut être difficile en raison de croisements incohérences de la plate-forme dans le comportement des tuyaux. Cependant, il existe plusieurs méthodes pour résoudre ce problème.
Exécution de script
Une approche consiste à créer un script qui encapsule les opérations de canal souhaitées et à exécuter le script au lieu de commandes individuelles. Par exemple :
#!/bin/sh ls /etc | grep release
Ensuite, exécutez le script en utilisant exec:
String[] cmd = {"/bin/sh", "path/to/script.sh"}; Process p = Runtime.getRuntime().exec(cmd);
Shell-Based Pipe
Une autre option consiste à utiliser directement la fonctionnalité pipe du shell, comme suit :
String[] cmd = { "/bin/sh", "-c", "ls /etc | grep release" }; Process p = Runtime.getRuntime().exec(cmd);
En utilisant l'option "-c", le shell exécute la chaîne de commande spécifiée dans un sous-shell, permettant l'utilisation de tuyaux et d'autres fonctionnalités du shell.
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!