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 :

distribuer son application java et ses lib [jni]


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut distribuer son application java et ses lib [jni]
    Bonjour.

    J'utilise des dll que j'ai créer et que j'appelle grâce à System.load() avec le chemin complet.

    Lorsque je vais distribuer mon application, ce chemin absolu ne sera plus bon.

    Comment distribuer ensemble mes .class avec mes .dll et s'assurer que tout va bien se charger ?

    D'avance merci.

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Points : 179
    Points
    179
    Par défaut
    Tu récupère tout d'abord le path du repertoire courant ou est stocké ton appli avec un systeme.getProperty("user.dir"). Puis apres tu n'auras aucun mal à charger tes librairies.

  3. #3
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Ok; merci je vais essayer

  4. #4
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut java.lang.UnsatisfiedLinkError:
    C'est bon c'était ça.

    Maintenant j'ai un Exception in thread "main" java.lang.UnsatisfiedLinkError: .

    Mais ça doit venir d'ailleurs car même avec le chemin complet j'ai l'erreur.

    C'est d'autant plus étrange que j'ai un autre programme java qui fait appel à cette lib qui lui fonctionne correctement.
    Mêmes chemins pourtant !

    La seule différence entre les deux progs, c'est que l'un est une seule classe, avec son propre static main et pour l'autre, l'application est découpée en plusieurs classes.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Salut,

    pourquoi tu utilises System.load et non System.loadLibrary qui te permet de ne spécifier que le nom de la librairie... ensuite il te suffit de mettre celle-ci dans le path des lib...

    exemple de déclaration du nom :
    - linux (libtoto.so)
    System.loadLibrary("toto");
    - windows (toto.dll)
    System.loadLibrary("toto");

    pour renseigner le chemin de la librairie tu peux le faire via les variables d'environnement (ref la doc de ton OS), sinon tu peux le renseigner via la commande d'execution :
    java -Djava.library.path=./lib ....suite de la commande de lancement
    (ici la lib dynamique se trouve dans le répertoire lib de ton projet)

    En procédant comme ça tu t'affranchis de l'emplacement de ton application et du système d'exploitation sur le quel elle se trouve.

  6. #6
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Au final c'est ce que j'ai fais.

    J'avais plusieurs versions de la lib un peu partout (et plusieurs fois dans le classpaths)

    Maintenant ça marche impec

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

Discussions similaires

  1. Déployer son application Java chez soit ?
    Par marwen109 dans le forum Général Java
    Réponses: 2
    Dernier message: 21/01/2012, 18h12
  2. Réponses: 5
    Dernier message: 14/05/2009, 14h13
  3. Distribuer une application Java utilisant une BD SQL
    Par Invité dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 11/02/2009, 22h35
  4. distribuer son application gtk+
    Par Hakenaton dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 08/04/2008, 17h30
  5. Distribuer son application en un seul JAR
    Par FabaCoeur dans le forum Général Java
    Réponses: 3
    Dernier message: 05/03/2008, 16h21

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