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

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

Linda Hamilton
Libérer: 2024-11-26 01:55:10
original
152 Les gens l'ont consulté

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

Exécuter des commandes Linux Shell à partir de Java avec des canaux et des redirections

Lorsqu'ils tentent d'interagir avec des systèmes Linux à partir de Java, les développeurs sont souvent confrontés au défi de exécuter des commandes shell avec des fonctionnalités avancées telles que la redirection et les tuyaux. Comprendre les nuances de l'appel de commandes shell via Java est crucial pour accomplir de telles tâches.

Runtime.exec() est une méthode couramment utilisée pour exécuter des commandes shell en Java. Cependant, il ne parvient pas à établir un environnement shell approprié, ce qui limite sa compatibilité avec les redirections et les canaux. Au lieu de cela, l'approche préférée consiste à créer un nouveau processus avec un interpréteur shell et à transmettre la commande en argument.

Considérez le code révisé suivant :

Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "cat /home/narek/pk.txt"});
Copier après la connexion

Ici, le "csh" L'interpréteur est lancé avec l'option "-c", qui lui permet d'exécuter la commande spécifiée comme si elle était saisie directement dans le shell csh. Cette approche établit efficacement un environnement shell, permettant l'utilisation de redirections et de tuyaux selon les besoins.

Si csh n'est pas installé sur votre système, vous pouvez le remplacer par bash comme suit :

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX"});
Copier après la connexion

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