
Envoyé par
La Goule
J'ai essayer avec cette commande juste avant le lancement du script perl, pour qu'il se place dans le dossier voulu. Mais aucun résultat, il me met qd même le rep résultat à la racine.
C'est normal puisque les deux commandes sont complètement indépendante l'une de l'autre...
Il vaut mieux utiliser la méthode exec() qui prend le chemin d'exécution en paramètre :
1 2 3 4
| final Process process = runtime.exec(new String[] { "mfold_outputXML_2.pl", "T", temp, "Na", na, "Mg", mg, "-seqfile", "/anais/IT/reference/sequences/Interface-BioinfoTools/6-Code/Scripts_perl/TestMfold/seqs.fasta"},
null, // variable d'environnement par défaut
new File("/home/richarde/essaiLaunchTool") // répertoire d'exécution
); |
Mais il faudra spécifier le chemin complet vers le script perl dans ce cas, à moins qu'il ne soit dans le PATH...

Envoyé par
La Goule
Sinon autre question comment ferme t'on un flux, stdin par exemple dont je ne me sert pas?

Envoyé par
Rayndell
En Java l'entrée standard (stdin en C) est accessible via le champ System.in.
Je parlais des flux du process lancé, qui sont inversé lorsqu'on les utilises depuis le programme Java. Ils sont accessible via les méthode getOutputStream(), getInputStream() et getErrorStream() de la classe Process.
Par exemple pour fermer le flux d'entrée :
process.getOutputStream().close();
a++
[edit] grillé
Partager