2016-11-07 6 views
0

IntelliJ 2016.2.5/MAC OS Sierra 10.12.1에서 JOGL2를 사용하는 Java 프로그램을 실행하려고합니다. 나는 (시스템에 따라) 모든 gluegenjogl 변화가로 찾을 수있는 JOGL2 \ 항아리 폴더를 추가 한IntelliJ 2016.2.5/MAC OS Sierra 10.12.1에서 JOGL2를 실행하는 중 오류가 발생했습니다.

jar 
lib 

:

나는 다음과 같은 하위 폴더를 포함하는 폴더 JOGL2을 가지고있다 IntelliJ의 라이브러리 및 IDE는 실행하기 전에 오류를 강조하지 않습니다.

jar folder added as a library 여기서 jar 폴더의 일부로 추가 된 일부 파일을 볼 수 있습니다.

터미널을 통해 실행할 수 있지만 IntelliJ를 실행하지 않아도 코드가 올바르게 작동하고 있다고 확신합니다. 프로그램을 실행하려고하면 다음 오류가 발생합니다.

편집 : 이것은 package 문과 관련이 있습니다. 패키지 이름을 지우고 터미널을 통해 실행하면 제대로 작동합니다.

Error loading texture image.jpg 
Error loading texture image2.jpg 
Exception in thread "main-FPSAWTAnimator#00-Timer0" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread AWT-EventQueue-0 
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:92) 
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452) 
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) 
    at java.util.TimerThread.mainLoop(Timer.java:555) 
    at java.util.TimerThread.run(Timer.java:505) 
Caused by: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread AWT-EventQueue-0 
    at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58) 
    at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103) 
    at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:201) 
    at com.jogamp.opengl.Threading.invokeOnOpenGLThread(Threading.java:202) 
    at com.jogamp.opengl.Threading.invoke(Threading.java:221) 
    at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505) 
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81) 
    ... 4 more 
Caused by: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread AWT-EventQueue-0 
    at com.jogamp.opengl.GLException.newGLException(GLException.java:76) 
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327) 
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147) 
    at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

Caused by: java.lang.NullPointerException 
    at mypackage.Show.computeImmediateMode(Show.java:96) 
    at mypackage.Show.computeDisplayList(Show.java:133) 
    at mypackage.GraphicScene.createRenderObjects(GraphicScene.java:70) 
    at mypackage.GraphicScene.<init>(GraphicScene.java:57) 
    at mypackage.Graphic.init(Graphic.java:217) 
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:644) 
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:667) 
    at com.jogamp.opengl.awt.GLCanvas$10.run(GLCanvas.java:1407) 
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1291) 
    ... 16 more 
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught NullPointerException: null on thread AWT-EventQueue-0 
    at com.jogamp.opengl.GLException.newGLException(GLException.java:76) 
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327) 
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147) 
    at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438) 
    at com.jogamp.opengl.Threading.invoke(Threading.java:223) 
    at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505) 
    at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559) 
    at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264) 
    at sun.lwawt.LWRepaintArea.paintComponent(LWRepaintArea.java:59) 
    at sun.awt.RepaintArea.paint(RepaintArea.java:240) 
    at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1314) 
    at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1198) 
    at java.awt.Component.dispatchEventImpl(Component.java:4965) 
    at java.awt.Component.dispatchEvent(Component.java:4711) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) 
    at java.awt.EventQueue$4.run(EventQueue.java:731) 
    at java.awt.EventQueue$4.run(EventQueue.java:729) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
Caused by: java.lang.NullPointerException 
    at mypackage.Tex3.reshape(Tex3.java:236) 
    at jogamp.opengl.GLDrawableHelper.reshape(GLDrawableHelper.java:751) 
    at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1420) 
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293) 
    ... 30 more 
2016-11-08 02:30:35.962 java[15337:804493] IMKInputSession presentFunctionRowItemTextInputViewWithEndpoint:completionHandler: : *NO* NSRemoteViewController to client, NSError=Error Domain=NSCocoaErrorDomain Code=4099 "The connection from pid 0 was invalidated from this process." UserInfo={NSDebugDescription=The connection from pid 0 was invalidated from this process.}, com.apple.inputmethod.EmojiFunctionRowItem 

어떻게 해결할 수 있습니까?

감사합니다.

+0

그것은 아무 상관이없는 String "/img/image1.jpg"로 직접 전달되는

BufferedImage img = ImageIO.read(getClass().getResource(filename)); 

, 따라서, 나는의 코드를 변경했습니다 JOGL과 관련이 있습니다. 텍스쳐에 사용 된 이미지 나 파일이 아닌 널 (null)을 얻으므로 NullPointerException이 발생합니다. "mypackage.Tex3.reshape (Tex3.java:236)"를보십시오. – gouessej

답변

0

그래,이 문제를 해결할 수있었습니다.

나는 자바 폴더에서 이미지 파일을 촬영하고 SRC의 내부에 자신의 이미지 폴더로 놓여있다.

또한 리소스를로드하는 가장 좋은 방법을 조사했습니다.

File f = new File(filename); 
BufferedImage img = ImageIO.read(f); 

에 : 파일 이름이