Wenn ich das ausführen .jar, ich bekomme ein “No lwjgl in java.Bibliothek.Weg" - Fehler
Ich mache ein Spiel in Java mit Hilfe der LWJGL Bibliothek über Netbeans.
Ich habe eine Bibliothek, mit der lwjgl, lwjgl_util, und jinput .jar ' s, und ich Hinzugefügt -Djava.Bibliothek.path=C:\LWJGL\native\windows in den "Run" - Kategorie in die Eigenschaften des Projekts.
Wenn ich die Datei in Netbeans läuft es perfekt mit kein Problem. Aber wenn ich das .jar via Doppelklick auf die Datei nichts auftaucht (nicht einmal die momentane cmd-Fehler-Fenster, soweit ich das sagen kann). Und wenn ich die Datei über die Kommandozeile, bekomme ich:
C:\Users\200160765>java -jar "C:\Users\200160765\Documents\NetBeansProjects\Game
\dist\Game.jar"
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.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:82)
at org.lwjgl.Sys.<clinit>(Sys.java:99)
at org.lwjgl.opengl.Display.<clinit>(Display.java:130)
at game.Draw.createWindow(Draw.java:198)
at game.Draw.init(Draw.java:214)
at game.Draw.run(Draw.java:56)
at game.Main.main(Main.java:9)
Habe ich versucht, bewegen Sie den DLL ' s und .jar-Dateien um die " lib " - Ordner im gleichen Verzeichnis wie Game.jar und verschieben Sie Sie in das gleiche Verzeichnis wie Game.jar, aber ich bekomme den gleichen Fehler. Könnte mir da jemand helfen, warum ich kann nicht scheinen, um diese arbeiten außerhalb von netbeans?
Du musst angemeldet sein, um einen Kommentar abzugeben.
du musst zeigen Sie die jvm, wo der native Dateien befinden sich mit einem command-line-parameter -Djava.Bibliothek.path="path/to/Eingeborenen". Könntest du eine batch (.bat) - Datei angeben, und starten Sie Ihre Anwendung für Sie.
Alternativ können Sie ein tool verwenden, wie JarSplice erstellen Sie eine einzelne ausführbare jar-Datei, aus der alle Ihre Gläser und gleichzeitig Ihre native Dateien drin. Es automatisiert die Schwierigkeit bei der Angabe der Eingeborenen manuell und bietet ein schöner end-user experience.
Verwenden JarSplice wählen Sie einfach Ihr game.jar, lwjgl.jar, lwjgl_util.jar und jinput.jar in den Gläsern tab. Dann alle *.dll, *.so, *.dylib und *.jnilib-Dateien in der einheimischen Reiter. Fügen Sie Ihre main-Klasse auf die Klasse-Registerkarte und erstellen Sie die einzige ausführbare jar-Datei.
LWJGL benötigt die native Komponenten für Ihre spezielle Plattform in
java.library.path
. Diese befinden sich im Unterverzeichnisnative
in der LWJGL-Verteilung und-Ende in.so
auf Linux, OSX und Solaris und.dll
für windows.Wenn ich dieses Problem gehabt, es war, weil ich versehentlich das argument, um den Speicherort anzugeben, von den Eingeborenen (-Djava.Bibliothek.path=/native/) in das Feld 'Argumente' im run Kategorie der Optionen", anstelle von "vm-Optionen".
Wie hier zu sehen: http://s30.postimg.org/6f90akidt/Capture.png
Ist und noch ein Weg, dies zu tun ist mit Java Web Start (jnlp): http://lwjgl.org/forum/index.php?topic=3763.0
Diese macht teilen Sie Ihr Projekt leichter in gewisser Weise.
Ich hatte dieses problem und es behoben mit jarSplice (http://ninjacave.com/jarsplice)
stellen Sie sicher, dass Sie löschen Sie alle preplaced Eingeborenen in Ihrem Glas, bevor Sie die Fett jar, sonst wird es doppelte Fehler
Ich habe auch den gleichen Fehler und dann realisiert, dass ich den Namen der Datei "my_lib.zip" statt "my_lib.jar". Vielleicht kann es jemandem helfen.
Eine andere Sache zu prüfen: