2017-04-16 137 views
0

Eclipse에서 Runnable jar로 내 보낸 후 내 Java 게임 (lwjgl 및 Eclipse를 사용하여 빌드 됨)이 실행되지 않습니다. Eclipse 내에서 프로그램이 제대로 실행되고 내 보낸 jar에 올바른 Manifest 파일 형식이 있습니다. 그때 (스택 오버플로 답변을 사용)수정 오류 : 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 

을 hw.jar -jar \ 사용자 \ 7rent 바탕 화면 \> 자바을 추가 JarSplice을 사용 :

C :이 항아리를 실행 한 후, 그것은 나에게 오류를 준 lwjgl 항아리와 원주민이 항아리에.

C : 결과 fatjar 나에게이 제공 \ 사용자 \ 7rent 바탕 화면> 자바 \ -jar SD.jar

오류 : 주 클래스를 찾거나로드 할 수 없습니다 core.SecDef

의 매니페스트 병이 포함 https://i.stack.imgur.com/ccpOH.png

과 FatJar의 내부는 다음과 같습니다 : 나는 JRE와 JDK 오늘, 모두 최신 버전을 설치 https://i.stack.imgur.com/hVBcD.png

시스템 변수에 대한 설정이 필요 없습니다.

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

JVM은이 lwjgl를 찾을 수 없습니다 :이 프로젝트는 자바를 준수하여 사전 : 그 이유는 예외 스택 추적에 제시되어있다

+1

대부분의 운영 체제에서 jar 파일 내에서 "있는 그대로"의 기본 라이브러리를 사용할 수 없습니다. 라이브러리를 일반 디스크 파일로 추출한 다음로드해야합니다. –

+0

[JarSplice의 Fat Jar Creator] (http://ninjacave.com/jarsplice) 또는 Eclipse의 실행 가능한 jar 익스포터를 사용 했습니까? JarSplice가 디스크에 DLL을 추출하고 거기에서로드하기 위해 일부 마법 Java 코드 을 추가 할 것으로 의심됩니다. –

+0

먼저 실행 가능한 jar 익스포터를 사용한 다음 JarSplice를 사용하여 해당 jar에 원주민을 추가했습니다. –

답변

0

를 6.

감사로 설정되어 네이티브 라이브러리.

+0

lwjgl.jar와 원주민을 jarsplice로 추가 한 다음 다른 "주 클래스를 찾을 수 없습니다"오류가 발생했습니다. –

+0

@TrentStevens이 Q & A가 도움이 될 수 있습니다. [Eclipse : 원주민과 JAR 패키징] (http://stackoverflow.com/questions/7886316/eclipse-packaging-a-jar-with-natives?rq=1). 그것은 LWJGL에 관한 것입니다. –