Exécuter des commandes Shell à partir de Java : un guide détaillé
En Java, vous pouvez exécuter des commandes système à l'aide de la méthode Runtime.exec(). Cependant, comprendre comment exécuter des commandes peut être difficile.
Ouverture d'une invite de commande
Le code que vous avez fourni ouvre correctement l'invite de commande :
Runtime rt = Runtime.getRuntime(); rt.exec(new String[]{"cmd.exe","/c","start"});
Cela ouvre une nouvelle fenêtre d'invite de commande.
Exécution Commandes
Pour exécuter une commande dans l'invite de commande, vous pouvez ajouter la commande à la ligne de commande avant de l'exécuter. Par exemple, pour changer de répertoire et exécuter une commande spécifique :
Changer de répertoire
// Change directory and run "dir" command ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");
La ligne de commande ci-dessus indique à cmd.exe d'exécuter les commandes suivantes dans l'ordre :
Exécution d'autres commandes
Vous pouvez exécuter n'importe quelle commande en modifiant la ligne de commande après "cd". Par exemple, pour exécuter la commande "ping" :
ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && ping www.google.com");
Utilisation d'un ProcessBuilder
La classe ProcessBuilder offre un moyen plus polyvalent d'exécuter des commandes. Il vous permet de :
Dans l'exemple ci-dessus, nous redirigeons l'erreur standard du processus vers sa sortie standard pour simplifier la lecture du sortie.
Exemple d'utilisation
Le code suivant exécute la commande "dir" dans le répertoire spécifié :
import java.io.*; public class CmdCommand { public static void main(String[] args) throws Exception { String dir = "C:\Program Files\Flowella"; ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "cd \"" + dir + "\" && 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); } } }
Ce code modifie le courant répertoire vers "C:Program FilesFlowella" et exécute la commande "dir", imprimant 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!