java Runtime.exec pour exécuter le script shell
Je suis à l'Exécution.getRuntime().exec() pour exécuter un script shell à partir du code java. Le code fonctionne très bien lorsque je passe le paramètre de chaîne de
Runtime.getRuntime().exec("sh test.sh")
Depuis que j'ai passer des arguments supplémentaires qui sont des chemins d'accès avec des espaces, donc je l'ai remplacé Chaîne avec la Chaîne de tableau.
String[] cmd = {"sh test.sh", "/Path/to my/resource file"};
Runtime.getRuntime().exec(cmd)
J'ai aussi essayé avec
String[] cmd = {"sh test.sh"};
Runtime.getRuntime().exec(cmd)
Mais aucun d'entre eux travaillaient. Son lancement exception
java.io.IOException: Cannot run program "sh test.sh":
java.io.IOException: error=2, No such file or directory
Pourquoi est-ce le même fichier de script lorsqu'il est passé comme une Chaîne de caractères travaillé et lorsqu'il est utilisé avec un tableau de Chaîne est en train de lancer une exception. Quelqu'un a été confronté à ce problème. Merci de m'aider à faire ce travail avec tableau de chaînes comme arugument à l'Exécution.exec(). Merci à l'avance.
- Vous devriez utiliser le
ProcessBuilder
comme mentionné dans votre question précédente stackoverflow.com/questions/12812345/...
Vous devez vous connecter pour publier un commentaire.
Première chaîne devenait la commande. Il n'existe pas de fichier "sh test.sh" pour être exécuté.
Changement
à
(En général l'utilisation processus générateur d'API)
String[] cmd = {"run", "test.bat", "/Path/to my/resource file"};
String[] cmd = {"test.bat", "/Path/to my/resource file"};
devrait fonctionner.