9
votes

Quand je cours le .jar, je reçois une erreur "no lwjgl dans java.library.path"

Je fais un jeu de base en Java à l'aide de la bibliothèque Lwjgl via Netbeans.

J'ai créé une bibliothèque avec le LWJGL, LWJGL_UTIL et JInput .jar's, et j'ai ajouté -djava.library.path = c : \ Lwjgl \ natif \ windows à la catégorie "Exécuter" dans les propriétés du projet.

Lorsque j'exécute le fichier dans NetBeans, il fonctionne parfaitement sans problème. Mais lorsque j'exécute le fichier .jar en double-cliquant sur le fichier, rien ne s'oppose (pas même la fenêtre d'erreur Momenary CMD, autant que je puisse dire). Et quand j'exécute le fichier via une ligne de commande, je reçois: xxx

J'ai essayé de déplacer les fichiers de la bibliothèque de DLL et .jar autour du dossier "Lib 'dans le même répertoire comme game.jar et les déplacer dans le même répertoire que jeu.jar, mais je reçois la même erreur. Quelqu'un pourrait-il m'aider à savoir pourquoi je ne peux pas sembler avoir ce travail en dehors des NetBeans?


0 commentaires

7 Réponses :


3
votes

LWJGL a besoin des composants natifs de votre plate-forme particulière pour être dans Java.Library.Path . Celles-ci sont dans le sous-répertoire natif dans la distribution LWJGL et terminez dans .so sur Linux, OSX et Solaris et .dll pour Windows.


1 commentaires

Je sais que cela a besoin de la DLL, mais ce que je ne sais pas, c'est comment NetBeans trouve l'amende de la DLL, mais le .jar ne le fait pas, et comment je dis le .jar qui.



9
votes

Vous devez signaler la JVM à l'endroit où les fichiers natifs sont localisés à l'aide d'un paramètre de ligne de commande -DJAVA.Library.Path = "chemin / à / indigène". Vous pouvez utiliser un fichier lot (.bat) pour spécifier cela et démarrer votre demande pour vous.

Vous pouvez également utiliser un outil tel que jarsplice pour créer un seul fichier JAR exécutable de tous vos pots et en même temps, vous incluez votre autochtone fichiers à l'intérieur. Il automatise la partie délicate de la spécification manuelle des indigènes et fournit une expérience utilisateur finale plus agréable.

Pour utiliser Jarsplice, sélectionnez votre jeu.jar, lwjgl.jar, lwjgl_util.jar et jinput.jar dans l'onglet JARS. Ensuite, tous les * .dll, * .so, * .dylib et * .jnilibact fichiers dans l'onglet NatifItics. Ajoutez votre classe principale sur l'onglet Classe et créez le bocal exécutable unique.


6 commentaires

Je ne suis pas si connu avec la syntaxe de fichiers .bat, mais j'ai essayé cet itinéraire: '@echo off java -jar game.jar -djava.library.path = c: \ lwjgl \ natif \ windows' et j'ai toujours le même Erreur.


De plus, la truc de graisse fonctionne, mais les textures sur les blocs que je rendent actuellement ne se chargeent pas ... Cependant, cela peut être le résultat de l'emballage dans un .jar et non l'emballage dans un bocal gras.


Yeh Assurez-vous simplement que vous ne chargez aucune texture à l'aide d'un fichier ou d'un fichierInputStream, car ceux-ci ne peuvent pas être utilisés pour charger des textures pour l'intérieur d'un pot.


Alors, quelle est exactement la syntaxe de fichier .bat correcte? Ou comment allais-je obtenir le PNG pour LWJGL sans FileInputStream?


@Stephen Wilkins: Vous devez placer le paramètre -D avant le paramètre -jar, car sinon, il sera interprété par l'application Java et non par la JVM.


Ah; Là nous allons. Merci un tas!



0
votes

Et pourtant une autre façon de le faire est avec Java Web Start (JNLP): http: //lwjgl.org/forum/index.php?topic=3763.0

Cela facilite le partage de votre projet à certains égards.


0 commentaires

0
votes

J'ai eu ce problème et j'ai corrigé-le à l'aide de Jarsplice (http://ninjacave.com/jarsplice)

Assurez-vous de supprimer toutes les autochtones préposées de votre pot avant de créer le bocal gras, sinon elle créera une erreur en double


0 commentaires

2
votes

Quand j'avais ce problème, c'était parce que j'ai accidentellement mis l'argument pour spécifier l'emplacement des indigènes (-Djava.library.path = / natif /) dans le champ appelé "arguments" sous la catégorie d'exécution des options des options panneau, au lieu d'options de «VM». Comme on le voit ici: http://s30.postimg.org/6f90akidt/capture.png


0 commentaires

0
votes

J'ai aussi eu la même erreur et j'ai ensuite réalisé que j'ai nommé le fichier "my_lib.zip" au lieu de "my_lib.jar". Peut-être que cela peut aider quelqu'un.


0 commentaires

0
votes

Une autre chose à vérifier:

  • Si vous utilisez un JVM 32 bits, vous avez besoin de bibliothèques 32 bits. (Même sur un système d'exploitation 64 bits)
  • Si vous utilisez un JVM 64 bits, vous avez besoin de bibliothèques de 64 bits.

0 commentaires