web-dev-qa-db-fra.com

Obtenir 'Java.lang.UnsatisfiedLinkError': pas de lwjgl dans Java.library.path

Notez que cela est différent de cette question car il ne traite pas de la liaison car il ne demande pas comment le lier via la CLI, mais l'interface graphique dans Eclipse.

J'ai essayé d'écrire un programme simple en utilisant LWJGL. Lorsque j'ajoute la bibliothèque à Eclipse (Kepler 4.3.1 sur Windows 7 64 bits) et que j'écris un programme, il ne montre pas de gribouillis rouges sous les choses qui utilisent LWJGL. Cependant, essayer de l'exécuter me donne la trace de pile suivante:

Exception in thread "main" Java.lang.UnsatisfiedLinkError: no lwjgl in Java.library.path
    at Java.lang.ClassLoader.loadLibrary(Unknown Source)
    at Java.lang.Runtime.loadLibrary0(Unknown Source)
    at Java.lang.System.loadLibrary(Unknown Source)
    at org.lwjgl.Sys$1.run(Sys.Java:73)
    at Java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.Java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.Java:95)
    at org.lwjgl.Sys.<clinit>(Sys.Java:112)
    at org.lwjgl.opengl.Display.<clinit>(Display.Java:135)
    at DisplayExample.start(DisplayExample.Java:8)
    at DisplayExample.main(DisplayExample.Java:23)

(Oui, c'est l'exemple qu'ils donnent en premier, mais je voulais l'exécuter pour m'assurer que tout était correctement installé)

Ma question est, comment puis-je corriger cette erreur? Notez que, même lors de l'exécution dans Eclipse, il échoue toujours. Si je lance quelque chose d'autre qui n'utilise pas LWJGL, cela fonctionne aussi. Je viens de le télécharger sur Internet - il n'y avait qu'une seule version, donc je suppose que c'était la bonne. D'après ce que je peux voir, aucun des autres poseurs de questions n'a la même erreur que moi - mais si vous pouviez me diriger vers des questions informatives, cela serait également utile.

21
Nic Hartley

Vous n'avez pas les natifs configurés dans votre application LWJGL.

Voici comment procéder:

  1. Accédez à votre dossier LWJGL qui contient les dossiers nommés "jar", "res", "doc" et "native". Vous devez aller dans Eclipse (en supposant que vous utilisez Eclipse), ouvrez votre projet dans l'Explorateur de projets sur le côté gauche de votre écran.
  2. Faites un clic droit sur la "bibliothèque système JRE" de votre projet, puis cliquez sur "Build Path" -> "Configure Build Path".
  3. Incluez les bibliothèques natives LWJGL à votre projet dans le configurateur de chemin de génération en cliquant sur "Emplacement de la bibliothèque native" qui peut être vu dans le menu déroulant Bibliothèque système JRE.
  4. Cliquez sur "Modifier ...", qui sera le seul bouton cliquable dans cette zone générale.
  5. Un explorateur de fichiers apparaîtra. Accédez à l'emplacement de votre dossier natif LWJGL (l'emplacement doit être quelque chose comme "C:\Users\YOURUSERNAMEHERE\Desktop\Java\Eclipse\lwjgl-2.9.0\native" si vous utilisez Windows) et incluez le dossier nommé [ Votre OS ici].

J'espère que cela a aidé :)

40
FreelanceCoder

Je suivais le tutoriel ici , et il semble que je n'ai pas fait l'étape Ajout de l'étape native , ou je l'ai fait mal.

Suivez les instructions de ce lien et le problème devrait être résolu:

Pour cela, cliquez sur la petite flèche à côté du fichier lwjgl.jar pour afficher la liste déroulante. Double-cliquez sur "Emplacement de la bibliothèque native" et sélectionnez le dossier qui contient les fichiers natifs pour votre système d'exploitation et cliquez sur OK. Ceux-ci sont situés dans le dossier natives inclus dans le bundle de téléchargement LWJGL (par exemple, sous Windows, vous pointeriez vers le dossier natives\windows qui contient les fichiers * .dll, sous Mac, vous pointeriez vers le dossier natives/macosx et sous Linux vous pointez sur le dossier natives/linux).

4
Nic Hartley