Interface Java & C++ - Java - Programmation
Marsh Posté le 17-01-2003 à 10:44:03
autrement que par les JNI me semble legerement impossible ( ou trop couteux en temps de développement)
Marsh Posté le 17-01-2003 à 13:20:58
Mais JNI, en temps d'exécution, ce n'est pas trop coûteux, tant que tu ne t'amuses pas à invoquer 10 000 méthodes Java dans le code C++.
Par contre, point de vue source, c'est assez lourd : ça revient presque à écrire du bytecode Java avec une syntaxe C/C++...
edit> Je parle par expérience : j'ai travaillé sur un assez gros serveur écrit en Java qui utilisait de plusieurs librairies C++ (persistence, indexation, ...), et les performances du JNI n'ont jamais vraiment été un problème. Ppar contre, l'architecture du soft Java doit être correcte : si tu t'amuses à créer 10 fois plus d'objets que nécessaire, le programme final sera lent, forcément.
Marsh Posté le 17-01-2003 à 14:06:38
Voila ce que je souhaite faire :
J'ai une servlet qui va uploadée des fichiers d'un poste client vers un serveur Sun et une autre qui peux supprimer ses fichiers uploadés.
Lorsque la servlet d'upload aura fini son travail elle doit invoquer une méthode d'une classe C++ pour maj des data en mémoire gèrer par l'application C++. Traitement similaire lors d'une suppression.
Sachant que les deux applications java & C++ tournent sur la meme machine Sun (Solaris8).
A+;
Marsh Posté le 17-01-2003 à 14:17:07
bin si tu l'utilises correctement je ne vois pas pq JNI ne pourrait pas convenir ...
Marsh Posté le 17-01-2003 à 17:37:07
Je confirme : JNI devrait parfaiter rentrer dans le cadre.
Marsh Posté le 20-01-2003 à 10:07:58
Bonjour;
Oui les sockets ou bien les messages queues iront bien également.
Mais le problème est il nécessaire de faire tout ce tralala juste pour une notification.
JNI irais bien mais le problème c'est qu'il faut inclure tout le programme C++ (et librairies incluses) ds le prog java.
Ce qui présente ds mon cas une 60 Mo.
Peut'on optimiser ceci ?
A+;
Marsh Posté le 20-01-2003 à 11:45:00
Dans ce cas, il vaut mieux que tu construises des librairies dynamiques (.dll / .so) contenant ton code C++, qui seront chargées par le code JNI à la volée.
Marsh Posté le 21-01-2003 à 10:11:56
Salut;
C'est intéressant ce que vous dites, mais si vous pouvez me donner plus de détails.
Mon exécutable C++ sera par exemple "toto.exe" qui utilise des librairies Rhapsody (*.so).
Qu'est ce que vous voulez dire par "qui seront chargées par le code JNI à la volée" ?
En vous remerciant.
Djamel
Marsh Posté le 17-01-2003 à 10:30:02
Bonjour;
Exist'il un autre moyen bcq plus performant que JNI pour dialoguer une application Java avec une autre appli en C++.
Le souci que j'ai c'es que j'ai une application web réalisée avec des comapsants java (Servlet + JSP) qui doit notifier (avec passage de qcq paramètres) une grosse application codée en C++ : lui transmet les paramètres et lancer par exemple une méthode d'une classe C++ pour réaliser un traitement.
C'est réalisable avec JNI mais problème des perfs.
En vous remerciant.