l'échange des données entre une application c++ et application java

l'échange des données entre une application c++ et application java - Java - Programmation

Marsh Posté le 15-09-2013 à 06:03:34    

Salut tout le monde !
 
Je veux obtenir la sortie d"une application C + + à partir d'une applications Java. J'ai  utilisé un  fichier abs.bat pour le faire
 
J'ai utilisé ce code dans bat.:

Code :
  1. start readxmlresou.exe


 
cette ligne decommande ouvre readxmlresou.exe qui est l'exécutable essue de l'application codé dan VS2010C++,cet exécutable setrouve dans mon bureau, cette commande l'exécute aussi, maintenant je veux obtenir le résultat de l'exécutable dans lapplication appelante java, j'ai écrit ce code mais il ne fonctionne pas:

Code :
  1. public Process DoSysCommand(boolean bWait) throws IOException
  2.        {
  3.            Runtime runtime1 = Runtime.getRuntime();
  4.            final Process process = runtime1.getRuntime().exec(new String[]{"C:\\Users\\abdelhalim\\Desktop\\abs.bat", "readxmlresou.exe"}, null, new File("C:\\Users\\abdelhalim\\Desktop\\" ));
  5.            process.getInputStream();
  6.            OutputStream out = null;
  7.            InputStream in= null;
  8.         // Consommation de la sortie standard de l'application externe dans un Thread separe
  9.         new Thread() {
  10.             public void run() {
  11.                 try {
  12.                     BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
  13.                     String line = "";
  14.                     try {
  15.                         while((line = reader.readLine()) != null) {
  16.                             // Traitement du flux de sortie de l'application si besoin est
  17.                            System.out.println("line="+ line);         
  18.                         }
  19.                     } finally {
  20.                         reader.close();
  21.                     }
  22.                 } catch(IOException ioe) {
  23.                     ioe.printStackTrace();
  24.                 }
  25.             }
  26.         }.start();
  27.         // Consommation de la sortie d'erreur de l'application externe dans un Thread separe
  28.         new Thread() {
  29.             public void run() {
  30.                 try {
  31.                     BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
  32.                     String line = "";
  33.                     try {
  34.                         while((line = reader.readLine()) != null) {
  35.                             // Traitement du flux d'erreur de l'application si besoin est
  36.                         }
  37.                     } finally {
  38.                         reader.close();
  39.                     }
  40.                 } catch(IOException ioe) {
  41.                     ioe.printStackTrace();
  42.                 }
  43.             }
  44.         }.start();
  45.            try
  46.            {
  47.                process.getInputStream();
  48.                if(bWait)
  49.                {
  50.                    process.waitFor();
  51.                }
  52.            }
  53.            catch(InterruptedException e)
  54.            {
  55.                System.err.println(e.getMessage());
  56.            }
  57.            return process;
  58.        }
  59. }


 
ce que je reçois quand je click le bouton dans l'interface graphique en Java est le resultat de l'exécution readxmlresou.exe (la console VS2010 c + + montre la sortie de l'application C + + readxmlresou.exe ) et puis il se bloque là, les 2 applications se bloquent à ce stade, même l'application  C ++ ne se ferme pas????
 
Je vais essayer de le comprendre, donc si vous avez une idée à ce sujet, je suis vraiment très reconnaissante pour votre aide


---------------
when there is a will there is a way
Reply

Marsh Posté le 15-09-2013 à 06:03:34   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed