Maison >Java >javaDidacticiel >Comment puis-je exécuter des commandes d'invite de commande, y compris des modifications de répertoire, en Java ?

Comment puis-je exécuter des commandes d'invite de commande, y compris des modifications de répertoire, en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-11 13:13:10687parcourir

How Can I Execute Command Prompt Commands, Including Directory Changes, in Java?

Exécuter des commandes d'invite de commande en Java

Problème :

Exécuter des commandes d'invite de commande via Java peut être un défi. Bien que vous puissiez trouver des extraits de code qui ouvrent l'invite de commande, ils n'ont souvent pas la possibilité de changer de répertoire et d'exécuter des commandes supplémentaires.

Solution :

Pour exécuter des commandes d'invite de commande et changez de répertoire à l'aide de Java, utilisez un ProcessBuilder. Cette approche permet de :

  • Démarrer un processus et rediriger son erreur standard vers sa sortie standard.
  • Changer de répertoire et exécuter des commandes dans une seule ligne de commande.

Exemple de code :

import java.io.*;

public class CmdRunner {
    public static void main(String[] args) throws Exception {
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();

        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while ((line = r.readLine()) != null) {
            System.out.println(line);
        }
    }
}

Ceci code :

  • Utilise un ProcessBuilder pour exécuter les commandes "cd" et "dir".
  • Redirige l'erreur standard du processus vers sa sortie standard pour un seul flux de lecture.
  • Imprime la sortie sur la console.

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