Bonsoir tlm,
Voici ma problématique :
- j'ajoute des fonctionnalités qui utilisent un binaire codé en C dans une application (je fais pour ça du JNI)
- l'application tourne sous AIX
- l'application est un .jar que l'on déploie simplement dans un répertoire dédié
Concrètement :
- j'ai créé une librairie de fonction newfonctionlib.so qui me sert à utiliser un toolkit toolkit.a
- j'ai créé la classe Java JNI pour appeler les fonctions de newfonctionlib.so
J'aimerais livrer tout ça proprement dans un .jar si possible (c'est beaucoup plus pratique pour la mise en prod).
Mon problème est comment faire en sorte que la classe JNI puisse loader newfonctionlib.so... Quand on fait un exemple simple de JNI sous AIX il suffit d'ajouter dans la variable d'environnement LIBPATH le répertoire qui contient newfonctionlib.so et de lancer l'appli. Le Java utilise la méthode 'System.loadLibrary' pour faire un appel système et le sytème regarde s'il trouve la librairie à charger dans LIBPATH.
Ici je voudrais savoir si on peut dire au système d'aller regarder aussi dans le .jar de l'application (comme ça il suffit de livrer les librairie C dans le jar, à la racine)
J'ai essayé de faire: export LIBPATH=/chemin/jar/application.jar:$LIBPATH
mais pour l'instant il me retourne l'exception java.lang.UnsatisfiedLinkError donc je pense qu'il n'est pas capable de regarder dans l'archive application.jar
Quelqu'un a déjà eu ce problème?
Partager