2017-04-16 34 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的。 –

相關問題