我做了一个使用外部库和资源文件的游戏。现在我想在另一台PC上测试它(使用Ubuntu OS),我尝试通过导出到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`
答案 0 :(得分:0)
确保您{0}正确,而不是在本地文件系统中引用它们。
确保将资源放入JAR getting your resource files。
答案 1 :(得分:0)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
lwjgl
。它应该位于java.library.path
。
在设置项目时,您肯定会将java.library.path
的目录添加到jwgl
的本机dll中。 Eclipse无法导出此内容。您将不得不创建一个添加dll的启动脚本(sh,bat)。
看看这里的最后一步: http://www.lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_Eclipse
答案 2 :(得分:0)
你是怎么收拾罐子的?如果你只使用eclipse,你应该使用jarsplice。这可能会解决错误