# Probleme mit Vista und JOGL



## PennyLane (22. Okt 2008)

Hallo,

ich habe ein Java-Programm, das JOGL nutzt und auf verschiedenen Plattformen (MacOS, Windows XP, Linux) problemlos läuft - nur unter Vista nicht. Startet man es in Eclipse, kommt die folgende Exception mehrfach:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: com.sun.opengl.impl.windows.WGL.CreateDummyWindow(IIII)J
	at com.sun.opengl.impl.windows.WGL.CreateDummyWindow(Native Method)
	at com.sun.opengl.impl.windows.WindowsDummyGLDrawable.<init>(WindowsDummyGLDrawable.java:53)
	at com.sun.opengl.impl.windows.WindowsGLDrawableFactory$1.run(WindowsGLDrawableFactory.java:99)
	at com.sun.opengl.impl.windows.WindowsGLDrawableFactory.maybeDoSingleThreadedWorkaround(WindowsGLDrawableFactory.java:219)
	at com.sun.opengl.impl.windows.WindowsGLDrawableFactory.canCreateGLPbuffer(WindowsGLDrawableFactory.java:119)
	at javax.media.opengl.GLJPanel.initialize(GLJPanel.java:889)
	at javax.media.opengl.GLJPanel.paintComponent(GLJPanel.java:488)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JSplitPane.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JSplitPane.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JLayeredPane.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
	at javax.swing.RepaintManager.paint(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
	at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
	at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
	at java.awt.Container.paint(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Das Fenster baut sich nur teilweise auf.

Startet man es nicht in Eclipse, kommt hingegen folgende Exception in rauen Mengen (auch hier baut sich das Fenster nur teilweise auf):

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not
 initialize class com.sun.opengl.impl.windows.WindowsGLDrawableFactory
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.jav
a:106)
        at javax.media.opengl.GLJPanel.initialize(GLJPanel.java:889)
        at javax.media.opengl.GLJPanel.paintComponent(GLJPanel.java:488)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintToOffscreen(Unknown Source)
        at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
        at javax.swing.RepaintManager.paint(Unknown Source)
        at javax.swing.JComponent._paintImmediately(Unknown Source)
        at javax.swing.JComponent.paintImmediately(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
n Source)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Hat jemand eine Idee, woran das liegen könnte? Die nativen Bibliotheken sollten alle korrekt eingebunden sein (obwohl der UnsatisfiedLinkError eigentlich auf das Gegenteil hindeutet ...)

Danke schon mal,
PennyLane

P.S. In dem Rechner, auf dem ich das teste, steckt eine GeForce 7600 mit nVidia-Treiber. Habe einige JOGL-Benchmarks getestet, die laufen alle.


----------



## Landei (22. Okt 2008)

Hast du eventuell 64 bit Vista mit einem 64 bit Java? Bei mir liefen Sachen nicht, die lwjgl (auch eine Open-GL-Java-Bindung wie JOGL) verwendeten, weil die nativen Aufrufe dann auch eine 64-bit DLL verlangten (wenn ich das richtig verstanden habe). Kurze Rede, gar kein Sinn: Nachdem ich zusätzlich ein normales 32-bit Java installiert habe und die Programme explizit mit selbigen gestartet habe, ging es. Das wäre dann solange nötig, bis es für JOGL (oder in meinem Fall für lwjgl) 64-bit DLLs gibt.


----------



## Guest (23. Okt 2008)

Nein, ist 32-Bit-Vista.


----------

