修复错误:找不到jar

时间:2017-04-16 16:13:40

标签: java eclipse jar lwjgl

我的java游戏(使用lwjgl和Eclipse构建)在从Eclipse导出为Runnable jar之后不会运行。该程序在Eclipse中运行良好,导出的jar具有正确的Manifest文件格式。执行这个Jar之后,它给了我一个错误:

C:\ Users \ 7rent \ Desktop> java -jar 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

然后我(使用Stack溢出答案)使用JarSplice将lwjgl jar和natives添加到这个Jar中。由此产生的fatjar给了我这个:

C:\ Users \ 7rent \ Desktop&gt; java -jar SD.jar

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

jar的清单包含: https://i.stack.imgur.com/ccpOH.png

并且FatJar的内部看起来像这样: https://i.stack.imgur.com/hVBcD.png

我今天安装了JRE和JDK,两个最新版本都没有对系统变量进行配置。该项目设置符合java 6。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

原因在异常堆栈跟踪中给出:

  

引起:java.lang.UnsatisfiedLinkError:java.library.path中没有lwjgl

JVM没有找到lwjgl本机库。