Re: Dialoge Process

Jean-Baptiste BRIAUD -- Novlog <[email protected]> Tue, 22 Feb 2011 23:11:37 +0100
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
Je ne suis pas sur d'avoir bien compris ce que tu voulais faire, mais une bidouille me viens à l'esprit :
"shooter l'animation" via des captures d'écran avec awt ... ?


On 22 févr. 2011, at 16:45, Erik Mazoyer wrote:

> Bonjour à tous,
>  
> Dans nos développements nous avons besoin de transformer un Flash en image sous Java.
> Pour cela nous avons écrit une passerelle JNI pour shooter l'animation en C++ et la récupérer en Java.
> Malheureusement l'ActiveX Flash n'est pas stable dans le temps et quand il plante, il plante aussi la JVM.
>  
> Pour éviter cela, nous envisageons d'écrire un application C++ et de la lancer depuis Java.
> De ce fait, si l'application plante, la JVM n'est pas perturbée.
>  
> Mais (car il y a toujours un mais) il faut mettre en place une communication entre l'application et la JVM (lancer l'application pour chaque rendu est trop consommateur de temps).
> Les solutions de dialogue basées sur ip sont proscrites car l'application doit pouvoir fonctionner sur tout ordinateur avec ou sans Firewall sans que l'utilisateur n'est à modifier sa configuration (souvent il n'en a pas le droit).
>  
> J'avais bêtement pensé à utiliser les InpuStream et OutputStream du Process lancé par Java.
>  
> Pour tester cela j'ai écrit une appli C++ qui fait un écho, elle lit en permanence sur std::cin et écrit ce qu'elle lit sur std::cout.
> Je l'ai testée sur l'invite de commande avec succès.
>  
> Du coté Java :
>  
> Process process = new ProcessBuilder(processFile.getCanonicalPath()).start();
> OutputStream outputStream = process.getOutputStream();
> InputStream inputStream = process.getInputStream();
>  
> Ensuite je délègue à des threads le remplissage de l'outputStream et la lecture de l'inputStream.
> Seulement voila, je reçois bien le message de l'appli comme quoi elle s'est lancée mais j'ai beau envoyer des caractères sur l'outputStream, je ne reçois rien sur l'inputstream.
>  
> J'ai essayé la lib Shell d'adiGuba (com.developpez.adiguba.shell) sans que ça ne change quoi que ce soit.
>  
> Ave- vous déjà réalisé cela ?
> Avez-vous des pistes de réflexions.
>  
> Merci d'avoir lu jusqu'ici :)
>  
> Erik