Bonjour tout le monde !
J'aimerais faire communiquer entre deux applications et je voulais le faire différement de d'habitude et de manière plus efficace j'espère (habituellement je le fais avec des sockets UDP).
J'ai une interface graphique que je voudrais créer en vb6 (for fun car je connais pas encore ce language et qu'il parait qu'il est sympa pour faire de l'interface graphique sous windows). Et celle-ci devrait communiquer avec mon programme java qui lancera mon interface graphique en vb6.
J'ai lu le tuto sur le lancement de programme externe en java
http://ydisanto.developpez.com/tutoriels/j2se/runtime/
Et je vais lancer mon interface graphique le plus simplement du monde :
Dans ce code j'ai fait un petit test pour l'instant mon interface graphique ne fait que généré un message et puis quitte et mon message apparaît bien sur la sortie de ma console éclipse, le comportement est donc tout à fait celui espéré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class Main { public static void main(String[] args){ Runtime runtime = Runtime.getRuntime(); try { final Process process = runtime.exec(new String[] { "C:/Users/Abbadon/Desktop/myGUI.exe" } ); try { BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = ""; try { while((line = reader.readLine()) != null) { System.out.println("Super ligne lue :" + line); } } finally { reader.close(); } } catch(IOException ioe) { ioe.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } }
Maintenant en fait j'aimerais savoir le méchanisme à l'oeuvre derrière ce process.getInputStream(), en fait c'est simplement un pipe ? Je veux dire que je pourrais obtenir exactement le même effet en point de vue performance en créant un pipe entre mes deux process?
Et j'aimerais savoir comment ouvrir ce pipe correctement si je fais ça en deux language différents (imaginons que je veuilles utiliser la sortie standard de ma gui pour autre chose et utiliser un autre cannal pour communiquer ) ? Comment on passe un "flux" sous windows à une application externe?
Merci d'avance, si je n'ai pas été clair n'hésitez pas à me reprendre je tacherai de clarifier .
Partager