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

Entrée/Sortie Java Discussion :

[JNI]UnsatisfedLinkError


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut [JNI]UnsatisfedLinkError
    Bonjour à tous,

    A première vue, c'est un problème récurant, mais je n'ai pas trouvé la solution dans les dernies posts.

    je tente de charger une une librairie qui se situe dans un dossier qui m'est propre. j'ai donc codé ceci pour pouvoir la chargée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class CodeGenerator {
     
        public CodeGenerator(MainWindows Windows,String  CodeWorkerFolder) {
            try {
                System.setProperty("java.library.path", CodeWorkerFolder + ";" + System.getProperty("java.library.path"));
                System.out.println("java.library.path = " + System.getProperty("java.library.path"));
                System.loadLibrary("JNICodeWorker");
            } catch (Exception exception) {
                System.out.println("java.library.path = " + CodeWorkerFolder);
                System.out.println("Unable to load the library: '" + exception.toString() +
                                   "'");
            }
        }
     
        public void GenerateFile(String SourceFolder,String WorkingFolder ) {
         ...
        }
    la création de l'objet est fait comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    public class ExecuteCodeWorker extends AbstractAction {
        private MainWindows Windows;
     
        public ExecuteCodeWorker(MainWindows Windows) {
            // Create the action object
            super("Generate files");
            putValue(Action.SHORT_DESCRIPTION, "Creates file which specific configuration");
            this.Windows = Windows;
        }
     
        public void actionPerformed(ActionEvent e) {
     
            CodeGenerator Motor = new CodeGenerator(Windows,
                                           Windows.dataBase.ExtractGeneralInformation(
                                          "GeneralConfiguration","CODE_WORKER_FOLDER"));
            Motor.GenerateDriver(Windows.dataBase.ExtractGeneralInformation(
                                           "GeneralConfiguration","BASE_FOLDER"),
                                 Windows.dataBase.ExtractGeneralInformation(
                                           "GeneralConfiguration","WORKING_FOLDER"));
        }
    }
    Mais voila, cela ne marche pas et j'ai le message suivant lorsque je crée un object du type CodeGenerator :

    java.library.path = E:/user/tools/CodeWorker;C:\Borland\JBuilder2005\jdk1.5\bin; ....
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no JNICodeWorker in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)


    Pourtant, mon java.library.path est correct et contient bien le repertoire contenant la librairie. Si je déplace ma librairie dans n'importe quel répertoire défini dans le java.library.path, cela fonctionne correctement.

    C'est un peu comme si le java.library.path avait bien été modifié, mais pas pris en compte !

    Si quelqu'un à une idée, Cela m'aiderais bien.

    merci

    [ Modéré par Viena ]
    Ajout tag résolu : Pensez au tag [Résolu], c'est rapide et ça évite de passer du temps à ouvrir des posts qui ont déjà une réponse.

    Les Règles du Forum
    Page sur Developpez : http://pbriand.developpez.com

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 47
    Par défaut
    Citation Envoyé par briand patrick
    Mais voila, cela ne marche pas et j'ai le message suivant lorsque je crée un object du type CodeGenerator :

    java.library.path = E:/user/tools/CodeWorker;C:\Borland\JBuilder2005\jdk1.5\bin; ....
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no JNICodeWorker in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
    Est-ce que ça ne viendrai pas de la syntax de ton chemin pour le CodeWorker ('/' au lieu '\') :

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour à tous,

    merci pour ta réponse, mais hélas cela ne change rien.
    Page sur Developpez : http://pbriand.developpez.com

  4. #4
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut [Résolu] JNI et UnsatisfiedLinkError
    j'ai pu enfin trouver la réponse à ma question.

    Il ne faut utiliser System.LoadLibrary mais plutot System.load

    Voici le code qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public CodeGenerator(MainWindows Windows,String CodeWorkerFolder) {
     
            try {
              String AbsoluteName = CodeWorkerFolder + "/JNICodeWorker.dll";  
                System.load(AbsoluteName);
            } catch (Exception exception) {
            }
        }
    Le LoadLibrary recherche la librairie dans les chemins définis dans java.library.path , tandis la méthode load permet de charger la librairie à partir d'un chemin absolue.
    Page sur Developpez : http://pbriand.developpez.com

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Je suis en train de parcourir les posts sur JNI pour résoudre un problème et je suis tombé sur celui-ci qui date d'un an, mais c'est pas grave.

    J'avais le même problème. Incompréhensible, sachant qu'un collègue avait le même code que moi et que ça marchait chez lui.
    En fait, le problème venait du fait que sous Eclipse, j'exécutais mon appli en tant que "SWT application". En changeant ça, et en mettant "Java application", ça a résolu le problème.

    Au cas où ça pourrait aider quelqu'un

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JNI]dll java
    Par icepower dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 03/09/2009, 14h53
  2. [JNI]appel d'un dll en Java
    Par Aida dans le forum Entrée/Sortie
    Réponses: 22
    Dernier message: 23/01/2008, 16h19
  3. [ JNI ] [ plug-in ] generateur d'en-tete *.h
    Par akira_le_gaucher dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2004, 17h18
  4. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 01h28
  5. [Débutant][JNI]Erreur de chargement de dll
    Par Agifem dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 24/04/2003, 14h36

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