Normal, tu encore as oublié d'échapper un "\" :aie:
Version imprimable
effectivement j'ai oublié d'echapper le \, voila donc cette fois j'ai rééseyer avec ces deux écriturespuisCode:cmd = { "C:\\cygwin\\bin\\sh.exe", "C:\\ConfAirSync\\script.sh" };
.Code:cmd = { "C:\\cygwin\\bin/sh.exe", "C:\\ConfAirSync/script.sh" };
effectivement je n'ai plus aucune erreur, mais je n'ai pas non plus de résultat.
c'est bizarre non? je n'ai plus aucune erreur mais mon script ne se lance pas, sachant que mon script fonctionne parfaitement quand je le lance directement.
salut,
et quel est le résultat auquel tu t'attends?? est-ce que ton script est supposé afficher quelque chose?? si c'est le cas, il faudra récupérer la sortie de ton script.
regarde l'article qui t'a été proposé, et plus précisément consommation des flux
mon script est supposé envoyé un fichier sur un serveur avec la commande scp, et justement le fichier n'est pas sur le serveur.
salut,
essaie en utilisant waitFor() de la classe Process après l'appel de la méthode exec, peut être que le programme se termine avant que la commande du script ne se termine
Lis les flux de sortie et d'erreur. A mon avis, ils doivent contenir un message d'erreur qui te seras utile.
j'ai changé ma classe comme vous m'avez ditmais ça marche toujours pasCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class test { public static void main(String[] args) { String[] cmd = { "C:\\cygwin\\bin/sh.exe", "C:\\ConfAirSync/script.sh" }; //String[] cmd = {"C:\\rsync_tache.bat" }; try { Process p = Runtime.getRuntime().exec(cmd); p.waitFor(); p.getOutputStream().close(); p.getInputStream().close(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream())); String line = ""; try { while((line = reader.readLine()) != null) { // Traitement du flux d'erreur de l'application si besoin est } } finally { reader.close(); } } catch (Exception e) { e.printStackTrace(); } }
si scp est verveux et que tu ne consume pas les flux de sortie, tu va bloquer scp. C'est pas parce que tu ne veux pas savoir ce que dit ton script que tu ne dois pas traiter ce qu'il dit.
Il faudrait que tu affiches la ligne que tu lis pour voir s'il y a un message d'erreur.
wééééééééééééé ça marche, un grand merci à tout ce qui m'ont aidé.
en lisant le flux d'erreur comme a suggéré Mr Uther, j'ai trouvé que c'était mon invité de commande qui n'arrive pas à lancer correctement mon script. en fait j'ai fait tout mes tests sur cygwin, alors que je lance bêtement mon script dans un "cmd" qui a visiblement un problème de sh.Citation:
Lis les flux de sortie et d'erreur. A mon avis, ils doivent contenir un message d'erreur qui te seras utile.
bref merci tout le monde, vous m'avez sauvé....
thanks from glasgow;)