IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Problem de NativeLibrary sous Unix, je lutte.


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut Problem de NativeLibrary sous Unix, je lutte.
    Bonjour,

    Pour mon stage je dois développer un petit logiciel en java utilisant la librairie cdf (Common Data Format) que j'ai télécharger sur internet puis installé sous windows.

    J'ai créer un executable (.jar) de mon logiciel, je le lance sous windows et tout va bien.

    J'essai ensuite de le lancer sous Unix mais ca ne marche pas et ca m'affiche le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    java.lang.UnsatisfiedLinkError: no cdfNativeLibrary in java.library.path
            at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1516)
            at java.lang.Runtime.loadLibrary0(Runtime.java:788)
            at java.lang.System.loadLibrary(System.java:834)
            at gsfc.nssdc.cdf.CDFNativeLibrary.<clinit>(CDFNativeLibrary.java:47)
            at gsfc.nssdc.cdf.CDF.open(CDF.java:275)
    Apperement il manque cdfNativeLibrary, mais je ne sais pas trop ce qu'est une NativeLibrary.

    Sous windows J'ai trouvé les fichiers cdfNativeLibrary.dll et cdfNativeLibrary.lib
    Peuvent-il me servir sous unix et ou dois-je les inclure ?
    Sinon comment m'en sortir.
    Est ce que je dois trouver une version Unix de cdfNativeLibrary, et si c'esst le cas, comment est ce que je l'incöue a mon logiciel ?

    Je n'y connait rien sous unix et il faut absolument que mon logiciel marche sous unix, sa fais deux jour que j'y suis.

    J'ai vraiment besoin d'aide, Merci beaucoup.

  2. #2
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Il te faut une version Unix de cdfNativeLibrary car cette librairie utilise du code natif. Pour intégrer tes librairies(celle pour Unix), je pense qu'il faut mettre le répertoire contenant tes librairies dans la propriété java.library.path(-Djava.library.path=mon rep).

    A+
    Hydraland

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Sous Linux ça ne va pas être aussi simple... les DLL étant des fichiers de librairies Windows...
    Le plus simple est de trouver les fichiers librairie équivalents sous Linux (en général des fichier .so)

    Sinon, essaye tout de même de mettre tes librairies dans le path "librairies" de ton application, on ne sait jamais

    [GRILLED]
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Merci je commence à y voir plus claire,

    Je n'utilise pas linux mais unix, je sais que ca se ressemble mais on m'a dit qu'il y'avait une différence donc je préfere préciser.

    Sur la machine Unix que j'utilise j'ai trouvé un libcdf.sl et un libcdf.a qui étaient déjà présents, peut-être que ca peut m'aider.
    Mais je ne sai pas comment les inculre.

    La chose qui m'intrigue c'est que je ne me suis jamais soucié de cdfNativeLibrary.dll et cdfNativeLibrary.lib sous windows. Je n'ai jamais eu a les inclure ou que ce soi, j'ai juste inclu cdfjava.jar dans le classpath de mon manifest, et lui ne contient rien non plus sur ces deux fichiers dans son propre manifest.

    En espérant que vous pourrez m'aider.

  5. #5
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Citation Envoyé par jeanlouis_lecodeur
    La chose qui m'intrigue c'est que je ne me suis jamais soucié de cdfNativeLibrary.dll et cdfNativeLibrary.lib sous windows. Je n'ai jamais eu a les inclure ou que ce soi, j'ai juste inclu cdfjava.jar dans le classpath de mon manifest, et lui ne contient rien non plus sur ces deux fichiers dans son propre manifest.
    Tu as dit que tu as installé ta librairie sous Windows. La dll et la lib ont dù être copié dans le répertoire d'installation de Java(Je sais plus ou exactement). C'est pour cela que tu n'as pas à les inclure dans le path des librairies utiliser par la JVM.

    A+
    Hydraland

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    Sauf erreur de ma part, les .a sont des lib statiques.
    Tu dois pouvoir les placer dans le dossier d'execution de ton jar.

    Cordialement, SethYs.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    On avance un peu, merci.

    J'ai essayer d'intégrer les deux fichier libcdf.a et .sl dans mon jar file mais rien à fairetoujiours la même erreur.
    J'ai aussi essayé de les mettre dans le dossier lib (avec les autre librairie) et de le signaler dans le class-path du manifest, mais c'est pareil.

    L'exception lancée est toujours la même.
    java.lang.UnsatisfiedLinkError: no cdfNativeLibrary in java.library.path

    Si je trouvais la cdfNativeLibrary, comment pourrais-je l'intégrer au java.library.path
    Je ne sais pas ce que c'est, et je ne sais pas ou le modifier.

    Merci,

  8. #8
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Citation Envoyé par jeanlouis_lecodeur
    Si je trouvais la cdfNativeLibrary, comment pourrais-je l'intégrer au java.library.path
    Je ne sais pas ce que c'est, et je ne sais pas ou le modifier.
    Salut,

    C'est écrit dans mon premier post. (java -Djava.library.path="Rep lib" ...).

    A+
    Hydraland

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Merci beaucoup,


    Je suis sur une machine HP-UX.
    Et j'ai lu ca dans la faq cdf.

    The above systems are fully supported for CDF 2.5, 2.6, and 2.7. CDF 3.0
    supports all the platforms listed above except for the HP-UX and IBM AIX
    operating systems (due to lack of interest and hardware). If you need to
    run the CDF 3.0 software on HP-UX or IBM AIX, please contact
    cdfsupport@listserv.gsfc.nasa.gov.

    J'ai envoyer un mail mais je sais pas si il vont répondre.

    Dans le userguide de cdf j'ai aussi lu ceci :
    libcdf.a The static CDF library on UNIX systems.
    libcdf.sl The dynamic CDF library on HP-UX systems.
    libcdf.so The dynamic CDF library on UNIX (other than HP-UX).

    Question en passant : Quelle différence entre librairie statique et dynamique ?

    Donc pour moi il ne faut pas un .so mais a priori un .sl

    Or j'ai trouvé un fichier cdf3-0 sur la machine que j'utilise, il semble donc déja installé. Dedans il y a libcdf.sl et un libcdf.a
    Est ce que ca peut m'aider ?

    J'ai essayer de compiler avec java -Djava.library.path="Rep lib" -jar "nom".jar
    Mais ca ne marche pas plus, exactement la même erreur.

    QQun voit qqchose qui pourrait m'aider ?

  10. #10
    Membre expérimenté Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Par défaut
    Au niveau OS, on peut aussi définir le SHLIB_PATH ou LIBPATH ( à la place du -D).
    Je ne sais plus laquelle, dur dur la multiplication des OS.

Discussions similaires

  1. CyberX3D probleme d'installation sous unix
    Par jalelouss dans le forum C++
    Réponses: 0
    Dernier message: 27/02/2008, 21h13
  2. Probleme de comilation sous unix "socket.h"
    Par skilipa123 dans le forum C
    Réponses: 1
    Dernier message: 28/11/2007, 23h35
  3. probleme de compilation sous Unix " socket.h"
    Par skilipa123 dans le forum Linux
    Réponses: 1
    Dernier message: 28/11/2007, 21h28
  4. Probleme de caractere sous UNIX
    Par gromito dans le forum Langage
    Réponses: 4
    Dernier message: 23/01/2007, 15h29
  5. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo