2010-09-14 5 views
1

Je souhaite exécuter myscript.sh à partir d'un projet Java.
L'appel que je veux faire est quelque chose comme ceci:Comment exécuter un script à partir d'un autre chemin

Process p = Runtime.getRuntime().exec("./myscript.sh "+param1+" "+param2); 

Le problème est que ce script.sh est pas dans le même chemin, donc je tryed à faire:

Process p = Runtime.getRuntime().exec("src/main/resources/./myscript.sh "+param1+" "+param2); 

Mais la le script n'est plus exécuté. Je suppose que le problème est dans la façon dont j'ai mis le chemin, parce que j'ai vérifié et le script fonctionne parfaitement s'il est dans le même chemin.

Des idées?

Merci à l'avance

+0

pouvez-vous voir FileNotFoundException? –

Répondre

2

Vous pouvez utiliser le ProcessBuilder à la place. En the documentation for Runtime.exec vous pouvez même lire ce qui suit:

ProcessBuilder.start() est maintenant la meilleure façon de commencer un processus avec un environnement modifié.

À titre d'exemple montre dans la documentation, vous pouvez utiliser pb.directory(File f) pour définir le répertoire de travail:

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
// ... 
pb.directory("myDir"); 
Process p = pb.start(); 
+0

Ouais. C'est vrai. +1 –

+0

merci !! c'était la solution! –

Questions connexes