envoyer des paramètre d'une application java à une application c++

envoyer des paramètre d'une application java à une application c++ - Java - Programmation

Marsh Posté le 22-09-2013 à 01:42:07    

salut tout le monde!
 
j'ai 2 applications,une sur éclipse et l'autre sur VS2010C + +, je veux envoyer des paramètres à partir du code Java à l'autre par exemple un tableau ou des entiers ect.. Tous ce que je connais, c'est exécuter le code C + + à partir du code Java en utilisant la console.  
ce que je veux, c'est ceci: envoyer des paramters à partir du code Java via une methode (pas avec clavier)vers l'application c + +, après on exécute ce code ( dans mon cas appliquer une division) et enfin renvoyer le resultat de calcule à l'application java ,voici donc mon code java:

Code :
  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.io.OutputStream;
  4. import java.util.Scanner;
  5. class Program
  6. {
  7.     private final Process proc;
  8.     private final Thread out, err, in;
  9.     public Program(String cmd, OutputStream pOut, OutputStream pErr, InputStream pIn) throws IOException
  10.     {
  11.         proc = Runtime.getRuntime().exec(cmd);
  12.         out = new Transfert(proc.getInputStream(), pOut);
  13.         err = new Transfert(proc.getErrorStream(), pErr);
  14.         in = new Transfert(pIn, proc.getOutputStream());
  15.         System.out.println("le output de lapplication ="+ out);
  16.         System.out.println("le input de lapplication ="+ in);
  17.         System.out.println("l'erreur de lapplication ="+ err);
  18.         out.start();
  19.         err.start();
  20.         in.start();
  21.     }
  22.     public void kill()
  23.     {
  24.         out.interrupt();
  25.         err.interrupt();
  26.         in.interrupt();
  27.         proc.destroy();
  28.     }
  29. }
  30. class Transfert extends Thread
  31. {
  32.     private final InputStream in;
  33.     private final OutputStream out;
  34.     public Transfert(InputStream in, OutputStream out)
  35.     {
  36.         this.in = in;
  37.         this.out = out;
  38.     }
  39.     @Override
  40.     public void run()
  41.     {
  42.         Scanner sc = new Scanner(in);
  43.         try
  44.         {
  45.             while (sc.hasNextLine())
  46.             {
  47.                 out.write((sc.nextLine() + System.lineSeparator()).getBytes());
  48.                 out.flush();
  49.                 if (isInterrupted())
  50.                     break;
  51.             }
  52.         }
  53.         catch (IOException e)
  54.         {
  55.             System.err.println(e);
  56.         }
  57.         sc.close();
  58.     }
  59. }
  60. public class Test
  61. {
  62.     public static void main(String[] args) throws Exception
  63.     {
  64.         Program prog = new Program("C:\\Division.exe", System.out, System.err, System.in);
  65.       //  prog.kill();
  66.     }
  67. }


et ici le code en c++ :

Code :
  1. #include <iostream>
  2. int main()
  3. {
  4.     int a,b;
  5.     std::cout << "a = ";
  6.     std::cin >> a;
  7.     std::cout << "b = ";
  8.     std::cin >> b;
  9.     if (b==0)
  10.         std::cerr << "Division par zero interdite" << std::endl;
  11.     else
  12.         std::cout << "a/b = " << (a/b) << std::endl;
  13.     return 0;
  14. }


 
 
Merci beaucoup pour vote aide


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

Marsh Posté le 22-09-2013 à 01:42:07   

Reply

Marsh Posté le 26-09-2013 à 09:53:27    

creuse JNI

Reply

Sujets relatifs:

Leave a Replay

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