Maison >Java >javaDidacticiel >Comment puis-je utiliser de manière fiable Piping avec Runtime.exec() de Java ?

Comment puis-je utiliser de manière fiable Piping avec Runtime.exec() de Java ?

DDD
DDDoriginal
2024-12-15 22:25:15631parcourir

How Can I Reliably Use Piping with Java's Runtime.exec()?

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!

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