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
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); } } }
Explication :
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
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!