2014-03-19 82 views
0

我在eclipse中制作了一个Java游戏,当我运行可执行文件.jar时,它启动并且加载屏幕开始,但随后停止并挂起。我使用命令行运行它:“Java -jar filename.jar”,当加载屏幕停止时,它显示一个错误。这就是CMD显示:我的java游戏在eclipse中运行,但一旦导出它“找不到LWJGL”并且不会运行

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) 

这是说,LWJGL不在的java.library.path我去了我的游戏,在工作区,并配置构建路径,包括所有库和当我导出游戏时将它们包含在.jar中,但我仍然遇到同样的问题。有谁知道我需要做些什么才能使其发挥作用? (我查看了.jar,LWJGL在org文件中)

回答

2

将lwjgl库导出到jar中。

要做到这一点,右键单击该项目,特性,Java构建路径,为了&出口,检查库

+0

Upvoting。也就是说,日蚀可以忽略这个,或者由于多种原因不能正确地做到这一点。如果你绝望,将源代码整合到你的项目中,并将其全部导出。 – Gorbles

+0

我去了,做了你所说的事,我需要的所有图书馆都在那里,都打勾了。我点击“确定”并继续导出。它没有错误地构建,但是当我运行它时仍然会出现相同的错误。 – user3278983

+0

你有什么属性 - > java构建路径 - >库,是在那里添加的库? –

0

坐落在命令行中(本机)库路径:

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

其中dir

[...]应包含本地部分(* .dll文件在Windows上,*。所以在Linux上, *在Mac等.jnilib)

Source

0

你需要做两件事情:你需要包括你的类路径(或您的罐子)的LWJGL类,你需要在你的库路径当地人。

从eclipse导出不会自动包含您的库路径,这就是为什么你会得到你的错误。

JarSpliceSvgExe这样的实用程序可以帮助解决这两个问题。

相关问题