Exécuter des commandes de ligne de commande avec Java
Lorsque vous essayez d'exécuter des arguments de ligne de commande à l'aide de Java, il est crucial de comprendre les nuances des différents modes d'exploitation. systèmes. Cet article vise à résoudre un problème spécifique rencontré par les utilisateurs de Windows lorsqu'ils tentent d'exécuter des commandes CMD via Java.
L'exemple fourni dans la question montre une tentative d'exécution des commandes "cd" et "dir" via la commande ligne utilisant Java. Cependant, cette méthode ne donne pas les résultats escomptés. Pour surmonter ce problème, une approche alternative est nécessaire.
La solution réside dans la construction d'un processus d'invite de commande (CMD) et dans la communication interactive avec lui via des flux d'entrée et de sortie. Cela permet l'exécution transparente de plusieurs commandes au sein d'un seul processus, comme le montre le code suivant :
String[] command = {"cmd"}; Process p = Runtime.getRuntime().exec(command); // Thread to handle error stream new Thread(new SyncPipe(p.getErrorStream(), System.err)).start(); // Thread to handle input stream new Thread(new SyncPipe(p.getInputStream(), System.out)).start(); // PrintWriter to write to the output stream PrintWriter stdin = new PrintWriter(p.getOutputStream()); // Write the "dir" command stdin.println("dir c:\ /A /Q"); // Close the stdin stream stdin.close(); // Wait for the process to complete int returnCode = p.waitFor(); // Print the return code System.out.println("Return code = " + returnCode);
Cette approche permet l'exécution de plusieurs commandes au sein du processus CMD, offrant ainsi une approche plus efficace et plus polyvalente. façon d'interagir avec la ligne de commande de Java.
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!