Maison > Java > javaDidacticiel > Comment exécuter des commandes CMD à partir de différents répertoires en Java ?

Comment exécuter des commandes CMD à partir de différents répertoires en Java ?

Mary-Kate Olsen
Libérer: 2025-01-03 05:48:39
original
636 Les gens l'ont consulté

How to Execute CMD Commands from Different Directories in Java?

Exécution de commandes CMD via Java

Problème :

Tentative d'exécution de commandes CMD via un Classe Java mais confrontée à des difficultés de compréhension du code. L'utilisateur a besoin de conseils sur la façon d'exécuter des commandes spécifiques, telles que changer de répertoire (cd) et exécuter des commandes dans le nouveau répertoire.

Solution :

Une approche pour l'exécution Les processus depuis des répertoires alternatifs vers le répertoire de travail de votre programme Java consistent à naviguer vers le répertoire souhaité et à exécuter le processus dans la même ligne de commande. Ceci peut être réalisé en demandant à cmd.exe d'exécuter une ligne de commande du formulaire :

cd some_directory && some_program
Copier après la connexion

Exemple de code :

Le code Java suivant montre le passage à un répertoire différent et en exécutant la commande "dir" dans celui-ci répertoire :

import java.io.*;

public class CmdTest {
    public static void main(String[] args) throws Exception {
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"C:\Program Files\Microsoft SQL Server\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
    }
}
Copier après la connexion

Explication :

  • Ce code utilise ProcessBuilder pour exécuter la commande.
  • Le "redirectErrorStream(true) " L'appel redirige l'erreur standard du processus vers sa sortie standard, ce qui entraîne un seul flux vers lire.

Exemple de sortie :

Le code fourni produit la sortie suivante :

C:\Users\Luke\StackOverflow>java CmdTest
 Volume in drive C is Windows7
 Volume Serial Number is D8F0-C934

 Directory of C:\Program Files\Microsoft SQL Server

29/07/2011  11:03    <DIR>          .
29/07/2011  11:03    <DIR>          ..
21/01/2011  20:37    <DIR>          100
21/01/2011  20:35    <DIR>          80
21/01/2011  20:35    <DIR>          90
21/01/2011  20:39    <DIR>          MSSQL10_50.SQLEXPRESS
               0 File(s)              0 bytes
               6 Dir(s)  209,496,424,448 bytes free
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