Maison >Java >javaDidacticiel >Comment puis-je exécuter des commandes Linux complexes avec des redirections et des canaux depuis Java ?

Comment puis-je exécuter des commandes Linux complexes avec des redirections et des canaux depuis Java ?

DDD
DDDoriginal
2024-11-19 15:07:02970parcourir

How Can I Execute Complex Linux Commands with Redirections and Pipes from Java?

Exécuter des commandes Linux avec des redirections et des tuyaux en Java

Invoquer des commandes shell Linux à partir de Java peut être fastidieux lorsqu'il s'agit de redirections et de tuyaux. La méthode Runtime.exec() par défaut est limitée dans la gestion de ces constructions.

Pour surmonter cette limitation, modifiez l'appel exec() pour spécifier explicitement l'interpréteur shell et transmettez la commande en argument :

String[] command = {"csh", "-c", "shell command"};
Process p = Runtime.getRuntime().exec(command);

Dans cet exemple, "csh" est invoqué comme interpréteur du shell et "shell command" est traité comme un argument du shell. Cette syntaxe prend en charge les redirections et les tuyaux, vous permettant d'exécuter des commandes complexes telles que :

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "cat file.txt | grep 'pattern'"});

Gardez à l'esprit que la disponibilité des interpréteurs shell comme "csh" ou "bash" peut varier en fonction de votre système. Si vous rencontrez des problèmes, essayez plutôt d'utiliser un interprète disponible.

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!

Déclaration:
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