[Users-fr] Accéder à Scilab en mode batch depuis Java
Victor Noël
victor.noel at irit.fr
Jeu 4 Oct 17:49:40 CEST 2012
Bonjour,
Nous utilisons Scilab dans un projet de recherche où il est nécessaire
d'exécuter plusieurs sessions en parallèles depuis java.
Comme cela n'est pas possible avec javasci, nous avons opté pour l'exécution
de scilab en mode batch avec écriture et lecture sur les entrées standards.
La version courte de notre problèmes est que cela marche sous Windows, mais
pas sous Linux !
Plus précisément, après avoir créé le processus, la lecture sur la sortie
standard bloque.
Le genre de code que nous avons est la suivant (avec Scilab 5.3.3):
String _SCILAB = "/usr/bin/scilab";
String[] _SCILAB_BATCH = {_SCILAB, "-nwni", "-nb"};
Process _process;
PrintWriter _writer;
Reader _reader;
ProcessBuilder pb = new ProcessBuilder(_SCILAB_BATCH);
_process = pb.start();
_writer = new PrintWriter(new OutputStreamWriter(_process.getOutputStream()));
_reader = new InputStreamReader(_process.getInputStream());
_writer.format("mode(-1);%n");
_writer.flush();
_writer.format("write(%%io(2),'test');%n");
_writer.flush();
// ça bloque ici !
int r = _reader.read();
while (r != -1) {
r = _reader.read();
System.out.print((char)r);
}
Qu'en pensez-vous ? Je me retrouve bloqué là, j'ai fais le tour des conseils
sur ce genre de problèmes lors de l'exécution de processus et la lecture des
entrées sorties mais je n'ai rien trouvé de probant !
Je me demande presque si ça ne peut pas venir de scilab lui-même ?
Merci pour votre aide !
Victor
Plus d'informations sur la liste de diffusion users-fr