Maison >Java >javaDidacticiel >Comment puis-je exécuter un fichier batch à partir d'une application Java ?

Comment puis-je exécuter un fichier batch à partir d'une application Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-22 18:51:15243parcourir

How Can I Run a Batch File from a Java Application?

Exécuter des fichiers batch dans des applications Java

En Java, exécuter un fichier batch qui lance des actions telles que "scons -Q implicit-deps-changed buildfile_load_type exportfile_load_type" peut sembler un défi.

Le défi du lot Fichiers

Les fichiers batch ne sont pas intrinsèquement exécutables et nécessitent une application pour les exécuter, comme cmd sous Windows. Contrairement aux fichiers de script UNIX qui utilisent shebang (#!) pour spécifier le programme en cours d'exécution, les fichiers batch ne disposent pas de ce mécanisme.

Tentatives d'exécution Java

Votre code Java initial, qui a tenté d'exécuter le fichier batch à l'aide de "Runtime.getRuntime().exec("build.bat", null, new File("."))", n'a pas réussi car il supposait que l'exécution était directe. l'exécution était possible.

La solution : utiliser cmd

La clé pour surmonter ce défi est d'utiliser la commande cmd pour exécuter le fichier batch. Voici le code Java corrigé :

Runtime.getRuntime().exec("cmd /c start \"\" build.bat");

En ajoutant "cmd /c start "" " au début de la commande, vous invoquez une fenêtre de commande qui exécute le fichier batch. L'argument start "" crée une fenêtre de commande distincte avec un titre vide pour afficher toute sortie. Alternativement, l'utilisation de "cmd /c build.bat" sans start "" omet la fenêtre de commande séparée et permet de lire la sortie dans Java.

La mise en œuvre de cette modification devrait permettre à votre application Java de déclencher avec succès l'exécution du traitement par lots. fichiers et effectuez les actions souhaitées.

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