Exécuter des commandes avec des paramètres en Java
L'exécution de commandes à partir d'applications Java nécessite souvent de transmettre des paramètres avec la commande. Ceci peut être réalisé à l'aide de la méthode Runtime.getRuntime().exec(), mais il est important de comprendre comment les paramètres sont transmis pour garantir une exécution correcte de la commande.
Tentative d'attribution de paramètres nommés
Une approche incorrecte consiste à spécifier les options comme argument unique à exec(), comme ceci :
String[] options = new String[]{"option1", "option2"}; Runtime.getRuntime().exec("command", options);
Cette méthode ne fonctionne pas car l'interpréteur de commandes ne reçoit pas les paramètres individuellement. Au lieu de cela, ils sont traités comme un argument de chaîne unique.
Transmission d'arguments avec un tableau de chaînes
Pour transmettre efficacement les paramètres, ils doivent être spécifiés en tant qu'éléments distincts dans un tableau de chaînes. :
Runtime.getRuntime().exec(new String[]{"php","/var/www/script.php","-m","2"});
Dans cet exemple, le premier argument est la commande à exécuter, tandis que les arguments suivants sont les paramètres. Cette approche garantit que chaque paramètre est correctement interprété par l'interpréteur de commandes.
Spécification de la position des paramètres
Si l'ordre des paramètres est important, il peut être crucial de spécifier leur ordonner explicitement dans le tableau :
String[] args = {"command", "-option", "-value"}; Runtime.getRuntime().exec(args);
Dans ce cas, le premier paramètre est la commande elle-même, le deuxième paramètre est une option et le troisième paramètre est la valeur associée à l'option. En spécifiant explicitement leur ordre, vous vous assurez que les paramètres sont transmis à la commande dans le bon ordre pour une bonne exécution.
Notes supplémentaires
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!