Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1512 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Rendre accessible à la JVM une librairie dynamique sous Linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rendre accessible à la JVM une librairie dynamique sous Linux

n°542351
El_gringo
Posté le 17-10-2003 à 15:03:30  profilanswer
 

Je fais mes premiers pas sur linux (redhat), et j'arrive pas à utiliser une librairie dynamique C++ (via JNI). La JVM ne trouve pas la librairie en question ("no MyLibrary in java.library.path" ).
Sosu windows on ajoute à la variable d'environnement "PATH" le chemin du répertoire contenant la dll à charger, mais, ss linux, ça se passe comment ?

mood
Publicité
Posté le 17-10-2003 à 15:03:30  profilanswer
 

n°542363
El_gringo
Posté le 17-10-2003 à 15:13:50  profilanswer
 

J'ai essayé ça :
http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
Mais ça n'a pas l'air de marcher! :-( (même message)

n°542390
LetoII
Le dormeur doit se réveiller
Posté le 17-10-2003 à 15:27:19  profilanswer
 

Y a pas un répertoire exprès pour les bibliothéques dynamiques sous linux? Si non y a aussi une variable d'environement PATH sous linux, ajoutes y l'enplacement de tas bibliothéque.


Message édité par LetoII le 17-10-2003 à 15:27:30

---------------
Le Tyran
n°542393
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 17-10-2003 à 15:31:16  profilanswer
 

Ui pis quand tu lances ton prog, tu peux ajouter une propriété, hein. Genre : java -Djava.library.path=/joulipath MonSuperProg


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°542396
El_gringo
Posté le 17-10-2003 à 15:32:42  profilanswer
 

LetoII a écrit :

Y a pas un répertoire exprès pour les bibliothéques dynamiques sous linux? Si non y a aussi une variable d'environement PATH sous linux, ajoutes y l'enplacement de tas bibliothéque.


 
Mais j'connais absolument rien à Linux moi. Elle est ou cette variable d'environnement ? Et je l'édite comment ?

n°542397
El_gringo
Posté le 17-10-2003 à 15:33:45  profilanswer
 

Taiche a écrit :

Ui pis quand tu lances ton prog, tu peux ajouter une propriété, hein. Genre : java -Djava.library.path=/joulipath MonSuperProg


 
ha ouais, pas con ça. Mais c'est une webapp, j'passe par tomcat. Jusqu'a maintenant j'ai pas mis le nez dans le script de démarrage.

n°542398
LetoII
Le dormeur doit se réveiller
Posté le 17-10-2003 à 15:34:05  profilanswer
 

PATH=$PATH:mon chemin qui va bien
export PATH


---------------
Le Tyran
n°542402
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 17-10-2003 à 15:35:25  profilanswer
 

El_gringo a écrit :


ha ouais, pas con ça. Mais c'est une webapp, j'passe par tomcat. Jusqu'a maintenant j'ai pas mis le nez dans le script de démarrage.


Ah OK. J'connais pas Tomcat mais j'suppose qu'il y a moyen de spécifier des arguments à la JVM (comme la taille max du heap, etc...) donc mate de ce côté-là, t'y trouveras peut-être ton bonheur.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°542404
El_gringo
Posté le 17-10-2003 à 15:36:11  profilanswer
 

Taiche a écrit :


Ah OK. J'connais pas Tomcat mais j'suppose qu'il y a moyen de spécifier des arguments à la JVM (comme la taille max du heap, etc...) donc mate de ce côté-là, t'y trouveras peut-être ton bonheur.


 
bien sur qu'il y a moyen. Reste à trouver le script de démarrage qui lance la JVM...

n°542471
El_gringo
Posté le 17-10-2003 à 16:39:04  profilanswer
 

Je suis en train de devenir fou !!!!
J'ai essayé des tas de trucs, rien ne marche.
J'ai essayé :  
modifier la variable d'environnement LD_LIBRARY_PATH (commande : env LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/monpath)
modifier cette même variable, mais dans la cadre de tomcat seulement.
modifier l'appel de la JVM qui fait tourner tomcat pour y ajouter -Djava.library.path=/joulipath
-> Dans ma servlet, quand une lib est pas trouvée, je liste le contenu de java.library.path. Résultat : dans tous ces cas, les chemins sont toujours les mêmes (3 chemins seulement, tous liés au SDK utilisé).
Mais c'est pas tout. J'ai essayé de coller ma lib dans un des ces 3 chemins. Il ne la trouve pas non plus !!!!!
 
Pour compiler ma dll, j'ai fait :
$ gcc -fPIC -c *.c
$ gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o
$ ln -s libfoo.so.1.0 libfoo.so.1
$ ln -s libfoo.so.1 libfoo.so
 
C'est bon ?
 
Aidez moi s'y vous plait, j'ai bientôt plus de cheveux, et je risque d'arracher n'importe quoi!

mood
Publicité
Posté le 17-10-2003 à 16:39:04  profilanswer
 

n°542497
R3g
fonctionnaire certifié ITIL
Posté le 17-10-2003 à 16:57:07  profilanswer
 

El_gringo a écrit :


 
ha ouais, pas con ça. Mais c'est une webapp, j'passe par tomcat. Jusqu'a maintenant j'ai pas mis le nez dans le script de démarrage.


Regardes plutôt du côté des fichiers de conf de tomcat, tu dois pouvoir mettre ça dans les propriétés de ton context. Sinon cette bibliothèque (car c'est bien bibliothèque le mot français), tu l'as mise où ?

n°542504
El_gringo
Posté le 17-10-2003 à 17:05:26  profilanswer
 

R3g a écrit :


Regardes plutôt du côté des fichiers de conf de tomcat, tu dois pouvoir mettre ça dans les propriétés de ton context. Sinon cette bibliothèque (car c'est bien bibliothèque le mot français), tu l'as mise où ?


 
C'est dans un fichier conf de tomcat que j'ai fais mes 2 premiers changements (dans tomcat4.conf je crois).
Et, mes .so, je les ai mises un peu partout! Nottament dans des chemins faisant partie de java.library.path
 [:sisicaivrai]  
(ouf, bientôt le week end !)

n°542506
R3g
fonctionnaire certifié ITIL
Posté le 17-10-2003 à 17:08:14  profilanswer
 

El_gringo a écrit :


 
C'est dans un fichier conf de tomcat que j'ai fais mes 2 premiers changements (dans tomcat4.conf je crois).
Et, mes .so, je les ai mises un peu partout! Nottament dans des chemins faisant partie de java.library.path
 [:sisicaivrai]  
(ouf, bientôt le week end !)


Et tu as essayé de les mettre dans le repertoire /lib de ton context ? (enfin je suis plus sur du nom... le repertoire où tu mets les jars dont tu as besoin)

n°542884
the real m​oins moins
Posté le 18-10-2003 à 17:49:45  profilanswer
 

defini le LD_LIBRARY_PATH ds le script de demarrage de tomcat: tu dois y mettre le chemin complet, fichier.so y compris


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Rendre accessible à la JVM une librairie dynamique sous Linux

 

Sujets relatifs
Librairie C++[ Web / C / Linux / Php ] Une foule de questions...
autopublication, affichage dynamique formaté dans champs texte ?prg sous Qt designer (linux)
Lancement de la JVM sous un profil Windows différent[Java] Plusieurs versions de JVM installées : problème
[Eclipse] Installation sous linux[linux] kernel et sockets
Mettre une fenetre en mode plein ecran sous Linux ??[thread/linux/c++/kdevelop3.1] Problème avec les threads
Plus de sujets relatifs à : Rendre accessible à la JVM une librairie dynamique sous Linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR