Native Library already loaded in another classloader

Native Library already loaded in another classloader - Java - Programmation

Marsh Posté le 11-08-2011 à 16:37:49    

bonjour,
j'essaie d'encapsuler un ensemble de routines C afin de les rendre accessible à du code java.
Pour ma première classe java, j'appelle bien le code C qui affiche des infos et retoune au java. Tout ceci se fait entre autre grâce à  
static { System.loadLibrary("corisyst" ); }  
qui appelle la librairie libcorisyst.so pointée par LD_LIBRARY_PATH
Encouragé par ce brillant résultat, j'écris une 2e classe java, je passe toujours comme il faut dans la première mais à l'appel de la seconde, j'obtiens le message Native Library /home/jmax/Devlib/libcorisyst.so already loaded in another classloader
Pour ma 2e classe java, j'essaie d'enlever le System.loadLibrary mais à  l'exécution je prend un message java.lang.UnsatisfiedLinkError
Y a t'il une astuce pour éviter ce genre de problème ?
merci de vos réponses avisées

Reply

Marsh Posté le 11-08-2011 à 16:37:49   

Reply

Marsh Posté le 11-08-2011 à 17:46:36    

Quand on lit http://download.oracle.com/javase/ [...] .String%29 il est écrit que  
If this method is called more than once with the same library name, the second and subsequent calls are ignored.  
 
alors pourquoi tant de haine et me jeter en me disant que la classe est déjà chargée ?

Reply

Marsh Posté le 11-08-2011 à 21:32:52    

Dans quel environnement cela se passe-t-il ?
Une bête application java lancée en ligne de commande ?

Reply

Marsh Posté le 12-08-2011 à 06:28:25    

oui, tout à fait et en investiguant encore plus, tout se passe bien si j'appelle n fois la même classe java mais qu'une seconde classe java utilise cette librairie, j'ai le message d'erreur

Reply

Sujets relatifs:

Leave a Replay

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