2014-11-07 2 views
0

Java OpenGL
Я следовал видео на том, как настроить jogl to Eclipse. Я скопировал его код, и когда я скомпилировал, я всегда получал эту ошибку.Настройка JOGL в Eclipse, после того, что я всегда получил эту ошибку

*

*Exception in thread "main" java.lang.NoSuchMethodError: javax.media.opengl.GLDrawableFactory.initSingleton()V at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1713) at javax.media.opengl.GLProfile.access$000(GLProfile.java:77) at javax.media.opengl.GLProfile$1.run(GLProfile.java:201) at java.security.AccessController.doPrivileged(Native Method) at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:187) at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:2246) at javax.media.opengl.GLProfile.get(GLProfile.java:959) at javax.media.opengl.GLProfile.getDefault(GLProfile.java:693) at javax.media.opengl.GLProfile.getDefault(GLProfile.java:704) at GL_TestProj.main(GL_TestProj.java:15)

**

и вот код я скопировал. :

import java.awt.Frame; 

import java.awt.event.WindowAdapter; 

import java.awt.event.WindowEvent; 

import javax.media.opengl.GL; 

import javax.media.opengl.GL2; 

import javax.media.opengl.GLAutoDrawable; 

import javax.media.opengl.GLCapabilities; 

import javax.media.opengl.GLEventListener; 

import javax.media.opengl.GLProfile; 

import javax.media.opengl.awt.GLCanvas; 

public class GL_TestProj implements GLEventListener { 
    public static void main(String args[]) { 

     GLProfile glp = GLProfile.getDefault(); 

     GLCapabilities caps = new GLCapabilities(glp); 

     GLCanvas canvas = new GLCanvas(caps); 

     Frame frame = new Frame(); 
     frame.setSize(500, 500); 
     frame.add(canvas); 
     frame.setVisible(true); 
     canvas.addGLEventListener(new GL_TestProj()); 
     frame.addWindowListener(new WindowAdapter() { 
      public void windowClosing(WindowEvent e) { 
       System.exit(0); 
      } 
     }); 
    } 

    @Override 
    public void display(GLAutoDrawable arg0) { 
     update(); 
     render(arg0); 

    } 

    private void render(GLAutoDrawable arg0) { 
     // TODO Auto-generated method stub 
     GL2 gl = arg0.getGL().getGL2(); 
     gl.glBegin(GL.GL_TRIANGLES); 
     gl.glColor3f(1, 0, 0); 
     gl.glVertex2f(-1, -1); 
     gl.glColor3f(0, 1, 0); 
     gl.glVertex2f(0, 1); 
     gl.glColor3f(0, 0, 1); 
     gl.glVertex2f(1, -1); 
     gl.glEnd(); 
    } 

    private void update() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void dispose(GLAutoDrawable arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void init(GLAutoDrawable arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, 
      int arg4) { 
     // TODO Auto-generated method stub 

    } 
} 

и здесь youtube Video i Followed. https://www.youtube.com/watch?v=obdcn01dEz8

ответ

0

Скорее использовать учебники нашей официальной вики, особенно это: http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE

Поскольку это видео не было одобрено нашим сообществом, мы не можем гарантировать, что его «советы» мудры. Кажется, очень долго объяснять что-то очень простое.

Не добавляйте jogl-awt.jar в свой путь сборки (я написал его на Youtube в комментарии), и он должен работать. Убедитесь, что JAR, содержащие собственные библиотеки, находятся в тех же каталогах, что и JAR, содержащие библиотеки Java (jogl-all.jar, gluegen-rt.jar).

Редактировать: Скопируйте ваш вопрос о JOGL на нашем официальном форуме, чтобы наши пользователи могли вам помочь, очень немногие находятся на SO.