IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Ecouter une application C++


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut Ecouter une application C++
    Bonjour,

    voila j'ai une appli Java qui utilise une partie C++ (pour des calculs sur des flux de données d'assez bas niveau ^^). Java doit d'abord appeler la fonction C++ qui va effectuer les traitements, pour cela je pense utiliser JNI (normalement l'appli C++ n'aura besoin que d'une adresse).
    Mon problème est de retourner le résultat des calculs fait par le C++. En effet, une fois la partie C++ lancée, elle va régulièrement donner des infos à la partie Java. Mais comment puis je faire ca ?

    -La partie C++ correspondra à un thread tournant en boucle jusqu'à ce que lui dise d'arrêter, donc je ne peux pas utiliser le retour de fonction.

    -Sachant que les résultats devront être à un moment mis dans des fichiers, je pourrais écrire ces fichiers via la partie C++. Mais existe il un moyen à Java d'écouter la création de fichier (dont je n'aurais pas le nom) dans un dossier ?

    -Utiliser CORBA pour appeler la fonction Java. Mais ca me semble quand même un peu "lourd" d'utiliser CORBA pour deux applis situées sur la même machine ...

    -Appeler une fonction Java depuis le C++ comme JNI peut le faire dans l'autre sens. Ca me semble encore être le mieux, mais est ce possible dans ce sens ?


    Voila, si vous avez quelques pistes, n'hésitez pas ^^

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu n'as qu'à faire un thread en java qui scanne un répertoire et traite l'arrivée de nouveaux fichiers issus de ton programme c++.
    Il faudra juste faire attention que ton programme java traite les fichiers une fois que ceux ci sont finis d'être écrits par le c++.
    Par exemple, changer l'extension du fichier une fois que ceux ci peuvent être pris en compte par le java.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Cela apporte quand même pas mal de petits risques, mais c'est une idée en effet. Je vais quand même voir si certain cas ne peuvent pas être trop "dangereux".

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    C'est un procédé que l'on utilise et qui fonctionne très bien.
    Les fichiers sont créés avec un certaines extension et quand l'écriture est terminée, on leur change l'extension pour que le programme java les traite.
    Il n'y a pas de problème particulier dans notre cas.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah sinon tu peux très bien appeler une méthode java depuis C++. Ca ne pose aucun problème (a part les habituels soucis JNI mais rien de nouveau de ce coté là). Ensuite tu fais en sorte que cette méthode ne réalise qu'une mise en file de traitement et non le traitement en lui même qui devra être réalisé dans un thread sépraré pour éviter que le C++ attende trop.

Discussions similaires

  1. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  2. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 14h39
  3. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  4. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 20/04/2002, 23h22
  5. Réponses: 2
    Dernier message: 15/04/2002, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo