DK_
DK_

Reputation: 147

My java game runs in eclipse, but once exported it "can't find LWJGL" and won't run

I made a Java game in eclipse and when I run the executable .jar it starts up, and the loading screen starts, but then it stops and hangs. I ran it using the command line: "Java -jar filename.jar" and when the loading screen stops it displays an error. This is what the cmd shows:

E:\>Java -jar Speedrunner.jar
60Ticks, FPS:1447
60Ticks, FPS:1627
60Ticks, FPS:1380
Wed Mar 19 12:02:27 GMT 2014 INFO:Initialising sounds..
Exception in thread "Thread-2" 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.openal.AL.<clinit>(AL.java:59)
    at org.newdawn.slick.openal.SoundStore$1.run(SoundStore.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.newdawn.slick.openal.SoundStore.init(SoundStore.java:292)
    at org.newdawn.slick.Sound.<init>(Sound.java:83)
    at com.daves.first_Scroller.utils.AudioPlayer.addSound(AudioPlayer.java:29)
    at com.daves.first_Scroller.utils.ResourceLoader.loadSounds(ResourceLoader.java:35)
    at com.daves.first_Scroller.Game.load(Game.java:110)
    at com.daves.first_Scroller.Game.tick(Game.java:160)
    at com.daves.first_Scroller.Game.run(Game.java:228)
    at java.lang.Thread.run(Unknown Source)

This is saying that LWJGL isn't in java.library.path I've gone to my game in the workspace and configured the build path to include all the libraries and to include them in the .jar when I export my game but I'm still getting the same problem. Does anyone know what I need to do to get this to work? (I looked in the .jar and LWJGL is there in the org file)

Upvotes: 0

Views: 960

Answers (3)

Kevin Workman
Kevin Workman

Reputation: 42174

You need to do two things: you need to include the LWJGL classes on your classpath (or in your jar), and you need to include the natives in your library path.

Exporting from eclipse doesn't automatically include your library path, which is why you're getting your error.

A utility like JarSplice or SvgExe can help with both of these things.

Upvotes: 0

robermann
robermann

Reputation: 1722

Set the (native) library path in the command line:

Java -Djava.library.path=path/to/dir -jar filename.jar

Where dir:

[...] should contain the native part (*.dll files on windows, *.so on linux, *.jnilib on mac, etc)

(Source)

Upvotes: 0

Guillermo Merino
Guillermo Merino

Reputation: 3257

Export lwjgl library in your jar.

To do this, right click on the project, properties, java build path, order & export, check your library

Upvotes: 2

Related Questions