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

Eclipse Java Discussion :

PATH et eclipse


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut PATH et eclipse
    Bjr a tous,

    voila j'ai cree une librairie .so (en c++) et utilise JNI pour interfacer du code c++ ... rin de bien mechant
    donc je me suis cree mon petit exemple sans passer par eclipse ... ce qui marche tres bien ...
    ensuite je passe sur eclipse pour retester en creant mon propres projet ... marche tjrs tres bien

    Maintenant j'aimerais integrer cette classe (qui me sert de lien vers la librairie .so) ds un projet donc je cree un nveau package ... et la il ne veut plus me charger la librairie alors que le .so se trouve tjrs a cote de lui exactement ds la meme config qu'avant ...

    donc la j'avoue que je ne comprend pas je pense que je dois avoir a rajouter un PATH ou un truc ds le genre mais je sais pas ...

    si quelqu'un pouvait m'aider
    merci

  2. #2
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    Bon je croix comprendre ce qui se passe ...
    le fait est que le .h exporte a partir de la classe .java ne correpond plus lorsque je mets le nom du paquage ...
    mais comme la commande javah ne fonctionne pas si il y a le package
    enfin ca rentre plus ds ce forum

    desole

  3. #3
    Membre chevronné Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Par défaut
    La commande javah ne cherche pas à intégrer le nom du package dans l'entete de ta méthode JNI. Tu dois le faire par toi même. Tu dois l'écrire dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Java_packageName_className_functionName

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    Ok merci ca devait venir de la

    mais j'avoue que j'ai tjrs cette erreur: Exception in thread "main" java.lang.UnsatisfiedLinkError: function name

    lorsque j'execute une des fonction native a partir d'un autre package mais lorsque c du meme aucun probleme d'execution ...
    Donc il n'arrive pas avoir acces a une de mes foncions mais trouve ma librairie ...

    mais je ne pense pas que ma bibliotheque soit mal faite sachant que l'execution est ok ds le meme package

    Qu'est-ce que tu en pense ?

  5. #5
    Membre chevronné Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Par défaut
    Si tu appelle ta fonction native d'un autre package, c'est normal que ça ne fonctionne pas. Pour fonctionner, il faudrait que tu aies dans ta librairie 2 fonctions pareilles, mais avec des noms différents. Le nom du package serait la seule différence dans la nomemclature JNI.

    Ce que tu devrai faire, c'est un seul point d'entré dans ton application Java. Une seule classe qui appelle toutes tes méthodes natives. Par la suite, un peu partout dans ton application, tu peux créer un objet de ta classe et appeler les méthodes java.

    Dans le genre:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package monTravail;
     
    
     
     
    
    public class JNICall {
    private static JNICall instance; private JNICall(){} publicstatic JNICall getInstance() {
    if (null == instance) { instance = new JNICall(); }
    return instance; } public native void jniStartWindow(); static {
    try{
    //We should load all the dlls related to the project so //we'd be sure that the other dependencies are from windows... System.loadLibrary("MaLibrairieJNI");
    } catch (SecurityException se) {
    System.out.println(
    "Security error");
    } catch (UnsatisfiedLinkError ule) {
    System.out.println(
    "Library (or chain of Librairies) not loaded correctly.");
    }
    }
    }
    Dans l'exmple, j'ai créé une classe Singleton qui m'assure d'avoir le même point d'entrée pour toute mon application. Dans ce cas, je n'ai qu'à créer 1 seule dll (ou .so). Cette classe se charge aussi de loader la librairie en question lors du démarrage de l'application.

    J'espère que ça peut t'aider.

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    Je me suis peut etre mal exprime tout a l'heure ... ma classe JAVA principal se trouve ds le meme package que le reste ... la si je mets un main ds cette classe happyness ... mais lorsque j'appelle les fonctionnalites de cette meme classe .... la ca ne marche plus ....

    mais sinon merci pour le singleton
    tu as une autre idee pour l'histoire de package ... je trouve ca bizzard mais ca fait 5 fois que je refaits tout de 0 et c tjrs pareil

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/10/2008, 13h07
  2. Erreur de PATH dans ECLIPSE ?
    Par a028762 dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 10/01/2008, 21h45
  3. probleme de class path avec eclipse
    Par geraldine34 dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 04/06/2007, 09h25
  4. build path sous Eclipse Maven
    Par babalastar dans le forum Maven
    Réponses: 1
    Dernier message: 11/01/2007, 09h51
  5. [Débutant] Problème de Build Path dans Eclipse
    Par Invité dans le forum Eclipse Java
    Réponses: 15
    Dernier message: 13/11/2005, 18h03

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