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

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

DDD
Libérer: 2024-11-23 13:34:09
original
872 Les gens l'ont consulté

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

Invocation de commandes Linux Shell à partir de Java : une explication détaillée

Lorsque vous essayez d'exécuter des commandes Linux à partir de Java, il est crucial de comprendre le nuances des commandes spécifiques au shell et leur compatibilité avec le runtime Java environnement.

Défi : Exécuter des commandes avec des redirections et des tuyaux

La tentative initiale d'utilisation de Process p = Runtime.getRuntime().exec("shell command") échoue gérer les redirections ou les tuyaux. En effet, exec() ne s'intègre pas directement au shell du système.

Solution : Tirer parti du "Proxy" du Shell

Pour exécuter des commandes shell avec des redirections et des canaux, vous pouvez tirer parti d'une approche « proxy shell ». Cela implique de spécifier le shell à utiliser comme étape intermédiaire.

Implémentation :

Remplacez exec() par ce qui suit :

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

Dans cet exemple, "csh" est le proxy shell utilisé pour interpréter la commande "cat /home/narek/pk.txt".

Remarque supplémentaire :

Si vous rencontrez des problèmes lors de l'utilisation de csh, envisagez plutôt d'utiliser bash comme proxy shell :

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal