Utilisation d'une dll labview dans un plugin imageJ
Utilisation d'une dll labview dans un plugin imageJ - Java - Programmation
MarshPosté le 13-04-2010 à 18:47:15
Bonjour à tous,
j'ai développé un PlugIn du logiciel opensource ImageJ (java) qui utilise des fonctions contenues dans une dll construite en LabView. L'utilisation de cette dll nécessite une interface JNI en C.
Voici un schéma résumant cela : PlugIn ImageJ (Java) -> Interface JNI dll (C) -> Bibliothèque de calcul dll (LabView) Les -> correspondant à un chargement de dll.
Ce PlugIn fonctionne très bien lors du premier lancement mais si l'on souhaite, dans une même session ImageJ, lancer plusieurs fois ce PlugIn (ie instancier plusieurs objets PlugIn) le PlugIn reste bloqué lors de l'appel de la première fonction Labview.
Pour essayer de localiser l'erreur j'ai remplacé la dll de calcul en Labview par une dll en C. Avec ce remplacement il n'y a plus d'erreur et le PlugIn peut se lancer plusieurs fois.
D'un autre côté si j'essaye de lancer un PlugIn via un programme Java quelconque en simulant l'appel d'un PlugIn par ImageJ (c'est à dire chargement et instanciation dynamique des classes Java compilées via un ClassLoader), on peut également lancer plusieurs fois le PlugIn.
Il semblerait donc que le problème vienne du couple ImageJ / LabView, probablement lié au fait que ImageJ lance un runtime Labview qui n'est peut être pas déchargé et qui lors d'un second chargement pose problème.
Je voudrais savoir si quelqu'un à déjà rencontré un problème de ce type.
Marsh Posté le 13-04-2010 à 18:47:15
Bonjour à tous,
j'ai développé un PlugIn du logiciel opensource ImageJ (java) qui utilise des fonctions contenues dans une dll construite en LabView. L'utilisation de cette dll nécessite une interface JNI en C.
Voici un schéma résumant cela :
PlugIn ImageJ (Java) -> Interface JNI dll (C) -> Bibliothèque de calcul dll (LabView)
Les -> correspondant à un chargement de dll.
Ce PlugIn fonctionne très bien lors du premier lancement mais si l'on souhaite, dans une même session ImageJ, lancer plusieurs fois ce PlugIn (ie instancier plusieurs objets PlugIn) le PlugIn reste bloqué lors de l'appel de la première fonction Labview.
Pour essayer de localiser l'erreur j'ai remplacé la dll de calcul en Labview par une dll en C. Avec ce remplacement il n'y a plus d'erreur et le PlugIn peut se lancer plusieurs fois.
D'un autre côté si j'essaye de lancer un PlugIn via un programme Java quelconque en simulant l'appel d'un PlugIn par ImageJ (c'est à dire chargement et instanciation dynamique des classes Java compilées via un ClassLoader), on peut également lancer plusieurs fois le PlugIn.
Il semblerait donc que le problème vienne du couple ImageJ / LabView, probablement lié au fait que ImageJ lance un runtime Labview qui n'est peut être pas déchargé et qui lors d'un second chargement pose problème.
Je voudrais savoir si quelqu'un à déjà rencontré un problème de ce type.
Merci.