tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    stewag stewag ist offline Grünschnabel stewag hat eine blütenweiße Weste
    Registriert seit
    Dec 2006
    Beiträge
    4
    Hallo!

    Ich möchte jogl für eclipse einrichten und brauche dazu Hilfe, denn es klappt bis jetzt einfach nicht.

    Vorhin habe Java (jdk 1.5.0_09) installiert. Das funktioniert. Denn wenn ich java -version ausführe wird es angezeigt.
    Anschließend habe ich mit an die Anweisungen von zeja vom 17.10.06 gehalten.
    D.h. ich habe mit Eclipse ein neues Projekt angelegt und darin einen Ordner lib eingerichtet.
    Dorthin habe ich die Dateien. jogl.jar, jogl_awt.dll, und jogl_cg.dll kopiert.
    Anschließend habe ich die Datei jogl.jar in den Java Build Path von eclipse aufgenommen (Projekt-Properities-> Java Build Path -> Libraries -> Add Jars).

    Danach habe ich versucht einen kleinen Quelltext einzugeben. Bei den ersten Zeilen tritt ein Fehler auf. Bei
    import. net.java.games.jogl.*; wird ein Fehler angezeigt. "net" wird nicht erkannt.

    Ich frage mich, ob ich die richtige jogl.jar - Datei habe.
    Im Package Explorer steht unter jogl.jar
    com.sun.gluegen.runtime
    com.sun.opengl.cg
    com.sun.opengl.impl.error
    etc.

    Die Dateien jogl.jar, sowie die dll's stammen von jogl.dev.java.net und dort aus der Datei
    jogl-1_0_0_windows-i586.

    Oder habe ich etwas falsch verstanden und muss ich vorher noch opengl installieren.

    Ich kenne mich mit den Werkzeugen (eclipse) nicht aus und brauche eine detailierte Auskunft (für einen echten Anfänger!). Dafür wäre ich sehr dankbar. Falls ich die falsche Datei habe, sagt mir doch bitte, wo ich die richtige finde.

    Gruß von stewag

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.327
    Blog-Einträge
    29
    Hallo,

    hier mal eine Anleitung für Eclipse 3.3M4 (für altere Eclipse Versionen sollte das weitestgehend passen):
    1) Neues Projekt mit dem Name de.tutorials.training.jogl anlegen. (step 1) -> Finish
    2) Im Projektverzeichnis zwei neue Folder anlegen:
    lib
    native
    3) Aktuelle Jogl Distribution downloaden:
    https://jogl.dev.java.net/#NIGHTLY
    4) Alle im entsprechenden Zip enthaltenen jars nach /lib und alle dll's nach /native kopieren.
    (Wenn mans entpackt muss man die Jars aus der im Zip enthaltenen Verzeichnisstruktur herauskopieren...)
    Mit F5 workspace aktualisieren:
    (Schaut dann so aus wie in step 2).
    5) Unter lib die beiden jars selektieren -> Kontextmenü -> Build Path -> Add to Buildpath
    (Step 3)
    6) Project Properties -> (Kontextmenu des Projects...) -> Java Build Path -> Libraries -> step 4
    7) bei gluegen-rt.jar -> native library location -> edit -> Workspace -> dort wählen wir unser native Verzeichnis aus. Das selbe machen wir dann auch noch fpr jogl.jar. Sollte dann so ausschauen wie in Step 5.

    Fertig:
    Nun können wir mal ein Demo aus der jogl-demo Distribution ausführen:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    
    package demos.gears;
     
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.media.opengl.*;
    import com.sun.opengl.util.*;
     
    /**
     * Gears.java <BR>
     * author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel) <P>
     *
     * This version is equal to Brian Paul's version 1.2 1999/10/21
     */
     
    public class Gears implements GLEventListener, MouseListener, MouseMotionListener {
      public static void main(String[] args) {
        Frame frame = new Frame("Gear Demo");
        GLCanvas canvas = new GLCanvas();
     
        canvas.addGLEventListener(new Gears());
        frame.add(canvas);
        frame.setSize(300, 300);
        final Animator animator = new Animator(canvas);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
              // Run this on another thread than the AWT event queue to
              // make sure the call to Animator.stop() completes before
              // exiting
              new Thread(new Runnable() {
                  public void run() {
                    animator.stop();
                    System.exit(0);
                  }
                }).start();
            }
          });
        frame.show();
        animator.start();
      }
     
      private float view_rotx = 20.0f, view_roty = 30.0f, view_rotz = 0.0f;
      private int gear1, gear2, gear3;
      private float angle = 0.0f;
     
      private int prevMouseX, prevMouseY;
      private boolean mouseRButtonDown = false;
     
      public void init(GLAutoDrawable drawable) {
        // Use debug pipeline
        // drawable.setGL(new DebugGL(drawable.getGL()));
     
        GL gl = drawable.getGL();
     
        System.err.println("INIT GL IS: " + gl.getClass().getName());
     
        System.err.println("Chosen GLCapabilities: " + drawable.getChosenGLCapabilities());
     
        gl.setSwapInterval(1);
     
        float pos[] = { 5.0f, 5.0f, 10.0f, 0.0f };
        float red[] = { 0.8f, 0.1f, 0.0f, 1.0f };
        float green[] = { 0.0f, 0.8f, 0.2f, 1.0f };
        float blue[] = { 0.2f, 0.2f, 1.0f, 1.0f };
     
        gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, pos, 0);
        gl.glEnable(GL.GL_CULL_FACE);
        gl.glEnable(GL.GL_LIGHTING);
        gl.glEnable(GL.GL_LIGHT0);
        gl.glEnable(GL.GL_DEPTH_TEST);
                
        /* make the gears */
        gear1 = gl.glGenLists(1);
        gl.glNewList(gear1, GL.GL_COMPILE);
        gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, red, 0);
        gear(gl, 1.0f, 4.0f, 1.0f, 20, 0.7f);
        gl.glEndList();
                
        gear2 = gl.glGenLists(1);
        gl.glNewList(gear2, GL.GL_COMPILE);
        gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, green, 0);
        gear(gl, 0.5f, 2.0f, 2.0f, 10, 0.7f);
        gl.glEndList();
                
        gear3 = gl.glGenLists(1);
        gl.glNewList(gear3, GL.GL_COMPILE);
        gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, blue, 0);
        gear(gl, 1.3f, 2.0f, 0.5f, 10, 0.7f);
        gl.glEndList();
                
        gl.glEnable(GL.GL_NORMALIZE);
                    
        drawable.addMouseListener(this);
        drawable.addMouseMotionListener(this);
      }
        
      public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
        GL gl = drawable.getGL();
     
        float h = (float)height / (float)width;
                
        gl.glMatrixMode(GL.GL_PROJECTION);
     
        System.err.println("GL_VENDOR: " + gl.glGetString(GL.GL_VENDOR));
        System.err.println("GL_RENDERER: " + gl.glGetString(GL.GL_RENDERER));
        System.err.println("GL_VERSION: " + gl.glGetString(GL.GL_VERSION));
        gl.glLoadIdentity();
        gl.glFrustum(-1.0f, 1.0f, -h, h, 5.0f, 60.0f);
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glLoadIdentity();
        gl.glTranslatef(0.0f, 0.0f, -40.0f);
      }
     
      public void display(GLAutoDrawable drawable) {
        angle += 2.0f;
     
        GL gl = drawable.getGL();
        if ((drawable instanceof GLJPanel) &&
            !((GLJPanel) drawable).isOpaque() &&
            ((GLJPanel) drawable).shouldPreserveColorBufferIfTranslucent()) {
          gl.glClear(GL.GL_DEPTH_BUFFER_BIT);
        } else {
          gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
        }
                
        gl.glPushMatrix();
        gl.glRotatef(view_rotx, 1.0f, 0.0f, 0.0f);
        gl.glRotatef(view_roty, 0.0f, 1.0f, 0.0f);
        gl.glRotatef(view_rotz, 0.0f, 0.0f, 1.0f);
                
        gl.glPushMatrix();
        gl.glTranslatef(-3.0f, -2.0f, 0.0f);
        gl.glRotatef(angle, 0.0f, 0.0f, 1.0f);
        gl.glCallList(gear1);
        gl.glPopMatrix();
                
        gl.glPushMatrix();
        gl.glTranslatef(3.1f, -2.0f, 0.0f);
        gl.glRotatef(-2.0f * angle - 9.0f, 0.0f, 0.0f, 1.0f);
        gl.glCallList(gear2);
        gl.glPopMatrix();
                
        gl.glPushMatrix();
        gl.glTranslatef(-3.1f, 4.2f, 0.0f);
        gl.glRotatef(-2.0f * angle - 25.0f, 0.0f, 0.0f, 1.0f);
        gl.glCallList(gear3);
        gl.glPopMatrix();
                
        gl.glPopMatrix();
      }
     
      public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {}
     
      public static void gear(GL gl,
                              float inner_radius,
                              float outer_radius,
                              float width,
                              int teeth,
                              float tooth_depth)
      {
        int i;
        float r0, r1, r2;
        float angle, da;
        float u, v, len;
     
        r0 = inner_radius;
        r1 = outer_radius - tooth_depth / 2.0f;
        r2 = outer_radius + tooth_depth / 2.0f;
                
        da = 2.0f * (float) Math.PI / teeth / 4.0f;
                
        gl.glShadeModel(GL.GL_FLAT);
     
        gl.glNormal3f(0.0f, 0.0f, 1.0f);
     
        /* draw front face */
        gl.glBegin(GL.GL_QUAD_STRIP);
        for (i = 0; i <= teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), width * 0.5f);
            if(i < teeth)
              {
                gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), width * 0.5f);
                gl.glVertex3f(r1 * (float)Math.cos(angle + 3.0f * da), r1 * (float)Math.sin(angle + 3.0f * da), width * 0.5f);
              }
          }
        gl.glEnd();
     
        /* draw front sides of teeth */
        gl.glBegin(GL.GL_QUADS);
        for (i = 0; i < teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + da), r2 * (float)Math.sin(angle + da), width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + 2.0f * da), r2 * (float)Math.sin(angle + 2.0f * da), width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle + 3.0f * da), r1 * (float)Math.sin(angle + 3.0f * da), width * 0.5f);
          }
        gl.glEnd();
        
        /* draw back face */
        gl.glBegin(GL.GL_QUAD_STRIP);
        for (i = 0; i <= teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), -width * 0.5f);
            gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), -width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle + 3 * da), r1 * (float)Math.sin(angle + 3 * da), -width * 0.5f);
            gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), -width * 0.5f);
          }
        gl.glEnd();
        
        /* draw back sides of teeth */
        gl.glBegin(GL.GL_QUADS);
        for (i = 0; i < teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glVertex3f(r1 * (float)Math.cos(angle + 3 * da), r1 * (float)Math.sin(angle + 3 * da), -width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + 2 * da), r2 * (float)Math.sin(angle + 2 * da), -width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + da), r2 * (float)Math.sin(angle + da), -width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), -width * 0.5f);
          }
        gl.glEnd();
        
        /* draw outward faces of teeth */
        gl.glBegin(GL.GL_QUAD_STRIP);
        for (i = 0; i < teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle), r1 * (float)Math.sin(angle), -width * 0.5f);
            u = r2 * (float)Math.cos(angle + da) - r1 * (float)Math.cos(angle);
            v = r2 * (float)Math.sin(angle + da) - r1 * (float)Math.sin(angle);
            len = (float)Math.sqrt(u * u + v * v);
            u /= len;
            v /= len;
            gl.glNormal3f(v, -u, 0.0f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + da), r2 * (float)Math.sin(angle + da), width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + da), r2 * (float)Math.sin(angle + da), -width * 0.5f);
            gl.glNormal3f((float)Math.cos(angle), (float)Math.sin(angle), 0.0f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + 2 * da), r2 * (float)Math.sin(angle + 2 * da), width * 0.5f);
            gl.glVertex3f(r2 * (float)Math.cos(angle + 2 * da), r2 * (float)Math.sin(angle + 2 * da), -width * 0.5f);
            u = r1 * (float)Math.cos(angle + 3 * da) - r2 * (float)Math.cos(angle + 2 * da);
            v = r1 * (float)Math.sin(angle + 3 * da) - r2 * (float)Math.sin(angle + 2 * da);
            gl.glNormal3f(v, -u, 0.0f);
            gl.glVertex3f(r1 * (float)Math.cos(angle + 3 * da), r1 * (float)Math.sin(angle + 3 * da), width * 0.5f);
            gl.glVertex3f(r1 * (float)Math.cos(angle + 3 * da), r1 * (float)Math.sin(angle + 3 * da), -width * 0.5f);
            gl.glNormal3f((float)Math.cos(angle), (float)Math.sin(angle), 0.0f);
          }
        gl.glVertex3f(r1 * (float)Math.cos(0), r1 * (float)Math.sin(0), width * 0.5f);
        gl.glVertex3f(r1 * (float)Math.cos(0), r1 * (float)Math.sin(0), -width * 0.5f);
        gl.glEnd();
        
        gl.glShadeModel(GL.GL_SMOOTH);
        
        /* draw inside radius cylinder */
        gl.glBegin(GL.GL_QUAD_STRIP);
        for (i = 0; i <= teeth; i++)
          {
            angle = i * 2.0f * (float) Math.PI / teeth;
            gl.glNormal3f(-(float)Math.cos(angle), -(float)Math.sin(angle), 0.0f);
            gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), -width * 0.5f);
            gl.glVertex3f(r0 * (float)Math.cos(angle), r0 * (float)Math.sin(angle), width * 0.5f);
          }
        gl.glEnd();
      }
     
      // Methods required for the implementation of MouseListener
      public void mouseEntered(MouseEvent e) {}
      public void mouseExited(MouseEvent e) {}
     
      public void mousePressed(MouseEvent e) {
        prevMouseX = e.getX();
        prevMouseY = e.getY();
        if ((e.getModifiers() & e.BUTTON3_MASK) != 0) {
          mouseRButtonDown = true;
        }
      }
        
      public void mouseReleased(MouseEvent e) {
        if ((e.getModifiers() & e.BUTTON3_MASK) != 0) {
          mouseRButtonDown = false;
        }
      }
        
      public void mouseClicked(MouseEvent e) {}
        
      // Methods required for the implementation of MouseMotionListener
      public void mouseDragged(MouseEvent e) {
        int x = e.getX();
        int y = e.getY();
        Dimension size = e.getComponent().getSize();
     
        float thetaY = 360.0f * ( (float)(x-prevMouseX)/(float)size.width);
        float thetaX = 360.0f * ( (float)(prevMouseY-y)/(float)size.height);
        
        prevMouseX = x;
        prevMouseY = y;
     
        view_rotx += thetaX;
        view_roty += thetaY;
      }
        
      public void mouseMoved(MouseEvent e) {}
    }

    Schaut dann so aus wie in Step 6.
    Lassen wir das Beispiel laufen sollte es ausschauen wie in Step 7
    Viel Spaß mit Jogl

    Gruß Tom
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken jogl und eclipse-27470attachment.jpg   jogl und eclipse-27471attachment.jpg   jogl und eclipse-27472attachment.jpg  

    jogl und eclipse-27473attachment.jpg   jogl und eclipse-27474attachment.jpg   jogl und eclipse-27475attachment.jpg  

    jogl und eclipse-27476attachment.jpg  
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    stewag stewag ist offline Grünschnabel stewag hat eine blütenweiße Weste
    Registriert seit
    Dec 2006
    Beiträge
    4
    Hallo Thomas,

    ich bin Deiner Anleitung gefolgt und es hat funktioniert. Nachdem ich es vorher ein paar Stunden erfolglos versucht habe freut es mich besonders ).
    Also herzlichen Dank für Deine Mühe! Stefan

  4. #4
    le_cheff le_cheff ist offline Grünschnabel le_cheff hat eine blütenweiße Weste
    Registriert seit
    Jun 2007
    Beiträge
    1
    Ich kann mich der Aussage meines Vorgängers nur anschliessen.

  5. #5
    mollitz mollitz ist offline Grünschnabel mollitz hat eine blütenweiße Weste
    Registriert seit
    Mar 2007
    Beiträge
    1
    auch bei mir tuts, vielen dank
    aber kannst du bitte noch verraten wie ich das global einbinde, so dass ich nicht bei jedem projekt die libs und natives einbinden muss und keine projekteinsteluungsänderungen vornehmen sondern bloss noch mit import die klassen einbinden muss. hab dazu mit nichts gefunden!

    danke,

    moritz

  6. #6
    JohnnyRep JohnnyRep ist offline Grünschnabel JohnnyRep hat eine blütenweiße Weste
    Registriert seit
    Sep 2007
    Beiträge
    1
    Ich stehe noch ganz am Anfang meiner Jogl Karriere und scheitere gerade an der Einrichtung eines funktionierenden Projekts. Ich habe alles so gemacht wie in Thomas Darimont's Anleitung beschrieben.

    Folgender Code funktioniert auch:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    package test;
     
    import javax.media.opengl.*;
     
    public class JoglTest {
      public static void main (String args[]) {
        try {
          System.loadLibrary("gluegen-rt");
          System.out.println("Hello World! (The native libraries are installed.)");
          GLCapabilities caps = new GLCapabilities();
          System.out.println("Hello JOGL! (The jar appears to be available.)");
        } catch (Exception e) {
          System.out.println(e);
        }
      }
    }

    Wenn ich allerdings das GEARS-Beispiel von oben laufen lassen möchte bekomme ich folgende Meldung:
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/gluegen/runtime/DynamicLookupHelper
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:111)
    at javax.media.opengl.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:520)
    at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:131)
    at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:90)
    at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:83)
    at demos.Gears.main(Gears.java:28)
    Caused by: java.lang.ClassNotFoundException: com.sun.gluegen.runtime.DynamicLookupHelper
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ... 30 more
    Ich sprich es wird scheinbar eine Klasse aus der "gluegen-rt"-library vermisst... Beispielcode eins sagt mir doch aber das alles okay ist!

    Wäre echt super, wenn mir jemand einen Tipp geben könnte. Entweder übersehe ich etwas oder es sind irgendwelche Versionen inkompatibel ?!

    Ach so ich benutze Eclipse 3.2 und die neuste stable release von jogl....

Ähnliche Themen

  1. JOGL Hilfe
    Von MailerDaemon im Forum Java
    Antworten: 1
    Letzter Beitrag: 23.01.07, 12:46
  2. Jogl mit Java
    Von Tim19822 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 17.10.06, 11:12
  3. Jogl und MacOS X 10.4 (MacBook)
    Von ?zeichen im Forum Java
    Antworten: 0
    Letzter Beitrag: 18.07.06, 16:16
  4. Probleme mit JOGL
    Von TriipaxX im Forum Java
    Antworten: 12
    Letzter Beitrag: 23.05.06, 16:15
  5. Eclipse und JOGL
    Von oska im Forum Java
    Antworten: 1
    Letzter Beitrag: 29.11.03, 22:02

Lesezeichen

Lesezeichen