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

Moteurs 3D Discussion :

[JOGL] Compiler un JAR indépendant des dll


Sujet :

Moteurs 3D

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut [JOGL] Compiler un JAR indépendant des dll
    Bonjour à tous, j'essaie de compiler un programme basique utilisant JOGL pour afficher un objet tri-dimensionnel en OpenGl sous java. Cependant, je dois pouvoir exécuter le programme sous un système sun, mac unix ou microsoft windows. Je développe avec le SDK Java 1.5, Eclipse 3.2 et le plugin FatJar. Mon problème est le suivant: sur ma machine windows, le .Jar complié par Fatjar fonctionne parfaitement, sur une machine autre que le mienne où les dll ne sont pas installée (pour ne parler que de windows) le programme affiche l'erreur suivante:

    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
    C:\Users\Transferts>java -jar Test_fat.jar
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.libra
    ry.path
            at java.lang.ClassLoader.loadLibrary(Unknown Source)
            at java.lang.Runtime.loadLibrary0(Unknown Source)
            at java.lang.System.loadLibrary(Unknown Source)
            at com.sun.opengl.impl.NativeLibLoader$DefaultAction.loadLibrary(NativeL
    ibLoader.java:78)
            at com.sun.opengl.impl.NativeLibLoader.loadLibrary(NativeLibLoader.java:
    101)
            at com.sun.opengl.impl.NativeLibLoader.access$100(NativeLibLoader.java:4
    7)
            at com.sun.opengl.impl.NativeLibLoader$1.run(NativeLibLoader.java:109)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sun.opengl.impl.NativeLibLoader.loadCore(NativeLibLoader.java:107
    )
            at com.sun.opengl.impl.windows.WindowsGLDrawableFactory.<clinit>(Windows
    GLDrawableFactory.java:60)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.jav
    a:106)
            at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:113)
            at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:82)
            at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:75)
            at visualisation.test1.main(test1.java:48)
    Je voudrais pouvoir inclure JOGL dans l'archive Jar pour ne plus avoir à l'installer sur le système d'exécution du programme, est-ce possible?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    c'est faisable :

    tu fais un dossier a cote de ton jar : "lib" par exemple.
    qui contient les dll, les so .... bref toutes les librairies natives.

    et dans ton programme tu execute au demarrage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setProperty("java.library.path",chemindossier);
    la JVM chargera les librairies qui sont compatibles avec le systeme.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Merci pour cette réponse, je pensais que ça ne fonctionnait que dans windows (en fait on peut se passer de System.property(""java.library.path"....) si on place les libs dans le même dossier).

    Mais en fait je voulais savoir si on pouvait inclure les libs dans le .jar

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    J'en profite pour faire un petit up

    J'ai un problème sous linux (ubuntu edgy eft) car même si je place les librairies spécifiques à linux à l'exécution du .jar il me dit qu'il ne trouve pas la librairie glugen (no gluegen-rt in java.library.path). Bien sur lorsque je place la lib dans un des répertoires du java.library.path cela fonctionne, mais ce sont des répertoires avec droits d'administrateur, et j'aimerais que le programme soit exécutable sur des machine où même les simples utilisateurs pourront l'utiliser. J'ai testé avec System.load System.LoadLibrary mais sans résultat probant (chemins relatifs et absolu, peut-être que j'écris mal le chemin, mais pour loadlibrary il n'y a pas de chemin à mettre). J'avoue être un peu perdu, Java c'est pas si portable que ça

  5. #5
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    je connais ces soucis la ^^

    les System.load et System.LoadLibrary ne semble efficace que sur des .jar pas sur des librairies natives. Aussi je n'ai pas trouvé d'autre solution que System.setProperty("java.library.path",chemindossier);
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Alors merci pour ta réponse, je vais voir si je peux me débrouiller de mon côté, et si jamais je trouve un solution je la posterai ici. Sinon je laisse ce thread en suspens

Discussions similaires

  1. Intégration des dll dans un fichier JAR
    Par dot-_-net dans le forum Général Java
    Réponses: 1
    Dernier message: 02/03/2011, 04h27
  2. Compilation versus Exécution des DLL
    Par dmichaud1978 dans le forum Visual Studio
    Réponses: 5
    Dernier message: 25/11/2010, 15h47
  3. Réponses: 5
    Dernier message: 21/09/2007, 08h59
  4. [JAR][DLL][path] inclure des DLLs dans un jar
    Par blaz dans le forum Général Java
    Réponses: 5
    Dernier message: 28/07/2005, 12h29
  5. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34

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