0

我制作了一个使用外部库和资源文件的游戏。现在我想在另一台 PC(使用 Ubuntu 操作系统)上测试它,我尝试通过导出到 jar 文件来在没有 eclipse 的情况下运行它,但它不起作用。这就是层次结构。有什么简单的方法可以做到这一点吗?

编辑 当我将它导出为 Runnable 时(请注意,我试图在 Windows 上运行它而不是 ubuntu)jar 文件并尝试运行它java -jar gra.jar它抛出:

`Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        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:132)
        at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)

        at MainWindow.main(MainWindow.java:14)
        ... 5 more`
4

3 回答 3

0

Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

lwjgl没有找到。它应该位于 中列出的目录之一中java.library.path

您肯定在设置项目时添加了一个java.library.path带有本机 dll 的目录。jwglEclipse 无法导出它。您必须创建一个添加 dll 的启动脚本(sh、bat)。

看看这里的最后一步: http ://www.lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_Eclipse

于 2012-11-25T13:50:47.513 回答
0

你是怎么包装罐子的?如果你只使用 eclipse,你应该使用 jarsplice。这可能会修复错误

于 2012-12-30T20:41:05.423 回答
0

确保您正确获取资源文件,而不是在本地文件系统中引用它们。

为确保您的资源被放入 JAR 中,请将它们添加到您的 classpath中。

于 2012-11-25T13:04:30.907 回答