Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/10/2010, à 13:35

izard

java3d no j3dcore-ogl in java.library.path

Bonjour,

J'utilise ubuntu 10.04. avec eclipse.

Lorsque j'essai d'exécuter un programme java3d à partir d'éclipse j'ai les messages suivant :

....
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1047)
    at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
...

Apparement le programme ne trouve pas j3dcore-ogl dans le chemin donné par "java.library.path". 
Dans le programme que je veux exécuter, au tout début de  main(String args[])  J'ai inclu les lignes :

String javaLibraryPath = System.getProperty("java.library.path");
System.out.println(javaLibraryPath); 

J'obtiens la valeur suivante pour le "java.library.path" :  "/home/mic/java3d/lib/i386:/home/mic/java3d/lib/i386"

Dans le répertoire /home/mic/java3d/lib/i386 se trouvent les fichiers :
libj3dcore-ogl.so   et   libj3dcore-ogl-cg.so

j'ai essayé de renommer les fichiers en :
j3dcore-ogl.so   et   j3dcore-ogl-cg.so
ou
j3dcore-ogl   et  j3dcore-ogl-cg

mais le message d'erreur reste le même.

Voici comment j'ai installé éclipse et java3d :
J'ai installé éclipse en décompressant l'archive    eclipse-java-helios-SR1-linux-gtk.tar.gz     dans un répertoire    /home/mic/eclipse3.6
J'ai installé java3d en décompressant l'archive    j3d-1_5_2-linux-i586.zip    et en copiant le répertoire   lib (et son contenu) dans un répertoire /home/mic/java3d

J'ai fait de multiples essais sans succès par exemple modifier la variable  LD_LIBRARY_PATH, réinstaller éclipse ...

Pouvez-vous m'aider ?

Hors ligne

#2 Le 26/10/2010, à 13:44

izard

Re : java3d no j3dcore-ogl in java.library.path

Suite de ma recherche ...
Il semblerait que le problème puisse provenir de ce que libj3dcore-ogl.so   et   libj3dcore-ogl-cg.so  dépendent elles même d'autres bibliothèques qui seraient manquantes.

En lançant la commande ldd pour déterminer les dépendance j'obtiens pour libj3dcore-ogl.so

~$ ldd /home/mic/java3d/lib/i386/libj3dcore-ogl.so
    linux-gate.so.1 =>  (0x002bc000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x008f6000)
    libGL.so.1 => /usr/lib/nvidia-96/libGL.so.1 (0x00218000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x0031d000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x0094e000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x007e6000)
    libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x00110000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00e02000)
    /lib/ld-linux.so.2 (0x00b29000)
    libjawt.so => not found
    libjvm.so => not found
    libGLcore.so.1 => /usr/lib/nvidia-96/libGLcore.so.1 (0x00f5c000)
    libnvidia-tls.so.1 => /usr/lib/nvidia-96/tls/libnvidia-tls.so.1 (0x00127000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00d36000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00129000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0050f000)

et pour   libj3dcore-ogl-cg.so

~$ ldd /home/mic/java3d/lib/i386/libj3dcore-ogl-cg.so
    linux-gate.so.1 =>  (0x00a78000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00e4b000)
    libCg.so => not found
    libCgGL.so => not found
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00378000)
    libGL.so.1 => /usr/lib/nvidia-96/libGL.so.1 (0x00518000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00110000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x00f8a000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00a49000)
    libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x00735000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00391000)
    /lib/ld-linux.so.2 (0x00dc6000)
    libGLcore.so.1 => /usr/lib/nvidia-96/libGLcore.so.1 (0x00f9a000)
    libnvidia-tls.so.1 => /usr/lib/nvidia-96/tls/libnvidia-tls.so.1 (0x00e44000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00baf000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x0022d000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0066d000)

La recherche des fichiers libCg.so  et libCgGL.so  sur mon disque dur donne "fichiers non trouvés".
L'instalation du nvidia-cg-toolkit  à partir de la logithèque ubuntu  fait disparaitre les messages :

    libCg.so => not found
    libCgGL.so => not found

La recherche des fichiers libjawt.so  et libjvm.so  sur mon disque montrent qu'ils existent dans le répertoire  /usr/lib/jvm/java-6-openjdk/jre/lib/i386/

Pour faire disparaitre toutes les dépendances non satisfaites (du point de vu de la commande ldd) j'ai mis les fichiers libjvm.so , libjawt.so, et libmawt.so dans le répertoire /home/mic/java3d/lib/i386 ou j'ai mis la bibliothèque java 3D.

l'erreur que me donne éclipse lors de l'exécution du programme java 3d reste exactement la même :

Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path

Ayant lu que le jre de opejdk serait incompatible avec java3D je l'ai remplacée par le jre de sun mais mon erreur reste inchangée.

Quelqu'un aurait-il une idée pour identifier mon problème ?

Hors ligne

#3 Le 27/10/2010, à 08:31

izard

Re : java3d no j3dcore-ogl in java.library.path

Beaucoup de temps perdu pour peu de chose, il  y avait un problème d'instalation. Solution : après avoir installé le jre de sun dans un répertoire   /home/mic/jre-sun  (l'exécutable  jre-6u22-linux-i586.bin  se trouve dans un répertoire  /home/mic/jre-sun/jre1.6.0_22) je tape les commandes suivantes dans la console :

cd /home/mic/jre-sun/jre1.6.0_22
sh /home/mic/java3d-1_5_1-linux-i586.bin

(Le fichier téléchargé  java3d-1_5_1-linux-i586.bin  se trouvait dans le répertoire  /home/mic)
Après avoir répondu "yes" pour approuver la licence, c'est bon !

Hors ligne