【发布时间】:2012-11-13 03:04:24
【问题描述】:
我制作了一个使用外部库和资源文件的游戏。现在我想在另一台 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`
【问题讨论】:
-
你试过用'java -jar
'运行它吗?会发生什么? -
第一次我使用另一个选项导出并抛出异常。现在我得到
no main manifest attribute, in game.jar。我将再次尝试导出以显示此异常。 -
你试过把原生文件和jar文件放在同一个目录吗?
-
@Oskar 好吧,经过几次尝试,我尝试了这个,它成功了,我想这是最简单的方法:P