Maison > Java > javaDidacticiel > le corps du texte

Comment rediriger efficacement la sortie lors de l'exécution de scripts Shell à l'aide du runtime Java ?

Susan Sarandon
Libérer: 2024-10-24 08:24:29
original
612 Les gens l'ont consulté

How to Effectively Redirect Output When Executing Shell Scripts using Java's Runtime?

Exécution de scripts Shell avec une sortie redirigée à l'aide du Runtime de Java

Lors de la tentative d'exécution de scripts Shell avec la méthode Runtime.exec() de Java, la sortie la redirection peut ne pas fonctionner comme prévu. Ce problème survient lorsque l'opérateur de redirection >> est utilisé dans le script.

Problème :

Process p = Runtime.getRuntime().exec("sh somescript.sh >> out.txt");
Copier après la connexion

Malgré l'exécution réussie du script, la sortie ne sera pas redirigée vers le fichier spécifié et le fichier lui-même restera incréé.

Solution :

Pour rediriger efficacement la sortie, il est nécessaire d'exploiter la classe ProcessBuilder de Java :

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException
Copier après la connexion

Explication :

En utilisant ProcessBuilder, vous pouvez configurer la redirection des flux stdout et stderr indépendamment. Les méthodes redirectOutput() et redirectError() permettent de spécifier un fichier pour la redirection de sortie.

Notez que si le fichier "out.txt" n'existe pas, il sera créé automatiquement. S'il existe déjà, le contenu existant sera écrasé.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!