2017-04-16 32 views
0

我的java游戏(使用lwjgl和Eclipse构建)在从Eclipse导出为Runnable jar后不会运行。该程序在Eclipse中运行良好,并且导出的jar具有正确的Manifest文件格式。执行这个JAR后,它给了我一个错误:修复错误:无法找到与jar的主类

C:\用户\ 7rent \桌面> Java的话,我(使用堆栈溢出的答案)的罐子hw.jar

Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 
Caused by: 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.opengl.Display.<clinit>(Display.java:135) 
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 core.SecDef.main(SecDef.java:13) 
... 5 more 

使用JarSplice添加lwjgl jar和当地人对这个罐子。得到的fatjar给了我这样的:

C:\用户\ 7rent \桌面> Java的罐子SD.jar

错误:无法找到或加载主类core.SecDef

的清单罐子包含此: https://i.stack.imgur.com/ccpOH.png

和FatJar内部看起来是这样的: https://i.stack.imgur.com/hVBcD.png

我安装了JRE和JDK的今天,无论是最新版本没有对系统变量进行配置。该项目被设定为符合的Java 6

提前:)

+1

在大多数操作系统的jar文件中,您不能“原样”使用本机库。您需要将库提取到正常的磁盘文件,然后加载它。 –

+0

您是否使用过[JarSplice的Fat Jar Creator](http://ninjacave.com/jarsplice) 或Eclipse的可运行jar导出器? 我怀疑JarSplice会添加一些神奇的Java代码 用于将DLL提取到磁盘并从那里加载它们。 –

+0

我首先使用了runnable jar导出器,然后使用JarSplice将本机添加到该jar。 –

回答

0

原因是在异常堆栈跟踪给定的感谢:

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

的JVM没有找到lwjgl本地库。

+0

我添加了lwjgl.jar和jpgplice的原生代,然后得到了其他的“无法找到主类”错误。 –

+0

@TrentStevens可能是这个问题和解答有助于:[Eclipse:打包JAR与本机](http://stackoverflow.com/questions/7886316/eclipse-packaging-a-jar-with-natives?rq=1)。这也是关于LWJGL的。 –

相关问题