API adiGuba : Affichage flux après execution
Hello le forum, adiGuba,
j'ai vu que ton API simplifiait pas mal de choses alors j'essaye de l'utiliser. Voila le bout de prog que j'avais avant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
if (this.name.contains(".pl")) {
/* if it's a perl file */
try {
runtime.exec(new String[]{"cmd", "/c", "perl", scriptFile}, // script perl à exécuter
null, // variable d'environnement par défaut
new File(cmdDirectory) // répertoire d'exécution de mon script perl
);
this.success();
} catch (IOException ex) {
this.error(ex);
}
} else if (this.name.contains(".vbs")) {
/* if it's a visualBasic file */
try {
runtime.exec(new String[]{"cmd", "/c", scriptFile}, // script perl à exécuter
null, // variable d'environnement par défaut
new File(cmdDirectory) // répertoire d'exécution de mon script perl
);
this.success();
} catch (IOException ex) {
this.error(ex);
} |
1/ Si l'utilisateur n'a pas setter sa variable d'environnement pour Perl, ou n'a pas Perl d'installer... je n'ai rien qui le notifie
2/ Je ne réccupère pas le flux de sortie suite à l'exécution de mes scripts...
Alors j'ai décider de prendre l'API de adiGuba et j'ai fais ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Shell = new Shell();
StringBuilder out = new StringBuilder();
StringBuilder err = new StringBuilder();
/**
* Je ne suis pas sûr de ce qui suit : c'est à dire que mon scriptFile qui est
* dans un répertoire (Rep1) doit s'exécuter dans un autre répertoire (Rep2)
* mais je ne sais pas comment écrire tout cela en une seule ligne....
*/
process = sh.command("cmd", "/c", "perl", scriptFile, "-d", cmdDirectory);
/**
* Comment cette fonction juge que le process est en erreur ?
*/
process.error(err);
process.output(out); |
Merci d'avance pour les infos,
Bap