ObjectInputStream et System.in
Bonjour tout le monde.
Je travaille sur deux trois classes destinés à faire communiquer deux processus de mon API via des objects.
Le fonctionnement se veut le plus simple possible : une classe du process A crée le process B. Ce faisant, A se garde sous le coude un object input stream et un object output stream correspondant à B, et les deux communiquent à l'aide d'object serializés prévus à cet effet.
Histoire de rester propre j'ai donc prévu les dites deux trois classes dédié à la comm'. Et je bloque bêtement au début :
Code:
1 2 3 4 5 6 7 8 9
| public StreamChannel(InputStream stdInput, OutputStream
try {
objectOutput = new ObjectOutputStream(stdOutput);
objectInput = new ObjectInputStream(stdInput);
} catch (IOException e) {
getLog().getLogger().severe(
"Unable to create object stream ! " + e.getMessage());
}
} |
Pour tester j'appelle ce constructeur avec System.in, System.out et System.err. Le ObjectOutputStream passe, puis ça freeze sur le ObjectInputStream(stdInput). Pas de message d'erreur, pas de plantage, juste bloque - plus rien.
Ce n'est pas l'usage normal prévu qui lui s'apparente plutôt à ça
Code:
1 2 3
| process = rt.exec("D:\\...\\start.bat");
InputStream is = process.getInputStream();
StreamChannel st = new StreamChannel(is,...) |
Mais j'aimerai bien savoir quel est le problème quand même, si quelqu'un sait ?