Jogl problem on OSX 10.9

classic Classic list List threaded Threaded
9 messages Options
tac
Reply | Threaded
Open this post in threaded view
|

Jogl problem on OSX 10.9

tac
This post was updated on .
Hi,

I updated OSX10.8 to 10.9.
The compilation of my java3D app was fine.
But, I got a problem when I run it( On OSX10.8 and 10.7,  it was no problem.).  

usingJava3D1.5.2:
Exception in thread "J3D-Renderer-1" java.lang.NoClassDefFoundError: apple/awt/ComponentModel
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo0(Native Method)
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo(JAWT_DrawingSurface.java:56)
        at com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable$1.run(MacOSXOnscreenGLDrawable.java:165)
        ......

using 3D [dev] 1.6.0-pre8-daily-experimental daily:
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opengl/FBObject
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
        at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
        at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
        at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3803)


Java and OS Version:
java.runtime.version=1.7.0_45-b18
os.version=10.9
3D [dev] 1.6.0-pre8-daily-experimental daily( or java3D1.5.2)



Thanks in advance.
tac
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

jmaasing
Might be related to this: http://forum.jogamp.org/No-GL4-profile-on-OSX-10-9-td4030350.html
Sven has been working on supporting OSX 10.9
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

gouessej
Administrator
In reply to this post by tac
Hi

tac wrote
I updated OSX10.8 to 10.9.
The compilation of my java3D app was fine.
But, I got a problem when I run it( On OSX10.8 and 10.7,  it was no problem.).  

usingJava3D1.5.2:
Exception in thread "J3D-Renderer-1" java.lang.NoClassDefFoundError: apple/awt/ComponentModel
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo0(Native Method)
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo(JAWT_DrawingSurface.java:56)
        at com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable$1.run(MacOSXOnscreenGLDrawable.java:165)
        ......
Java3D 1.5.2 has been abandoned by Oracle/Sun and is not maintained by the JogAmp community. Use it at your own risk.

tac wrote
using 3D [dev] 1.6.0-pre8-daily-experimental daily:
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opengl/FBObject
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
        at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
        at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
        at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3803)


Java and OS Version:
java.runtime.version=1.7.0_45-b18
os.version=10.9
3D [dev] 1.6.0-pre8-daily-experimental daily( or java3D1.5.2)



Thanks in advance.
tac
JOGL and GlueGen JARs must be in the classpath, you must use the same version of JOGL 2 than the one used to build Java3D 1.6 pre8, you must use the same version of JOGL 2 to compile your application and to run it. You must ensure that there is no conflict with another version of JOGL and/or Java3D, I highly discourage you to install Java3D as an extension (which was something often happening under OS X several years ago). The JogAmp community only maintains Java3D 1.6. Don't install Java3D 1.5.2 and Java3D 1.6 to avoid conflicts. Both uses different incompatible versions of JOGL (Java3D 1.5.2 uses JOGL 1.1 whereas Java3D 1.6 pre8 uses at least JOGL 2.1). Moreover, Java3D 1.5.2 is so old that it has absolutely no chance to support recent Macs (including Mac OS X 10.9), it relies on some classes only available in Apple JRE, not in Oracle Java 1.7 update 45. Good luck. Maybe my tutorial can help you.
Julien Gouesse | Personal blog | Website
tac
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

tac
Thanks, gouessej.

Jogl worked using your tutorial on OSX10.9.
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

gouessej
Administrator
Thank you for the feedback. I'll probably add some information about conflicts with obsolete versions of Java3D into my tutorial soon. I updated it a few days ago in order to point out to Java3D 1.6.0-pre10.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

jhuwaldt
In reply to this post by tac
I hate to re-open an old thread, but I'm having an almost identical problem and following the tutorial did not resolve it.

I have a program (GeomSS: http://sourceforge.net/p/geomss/wiki/Home/) that uses Java3D (1.6.0_pre11) and JOGL (version 2.2).  It has long worked well on Java 1.6 on MacOS X 10.6.  I recently upgraded all the way up to MacOS X 10.9.4 and Java 1.7 (I know, I'm a late adopter), and now I get the following error:

java -jar GeomSS.jar
Exception in thread "J3D-Renderer-1" java.lang.NoClassDefFoundError: apple/awt/ComponentModel
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo0(Native Method)
        at com.sun.opengl.impl.JAWT_DrawingSurface.GetDrawingSurfaceInfo(JAWT_DrawingSurface.java:56)
        at com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable$1.run(MacOSXOnscreenGLDrawable.java:165)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable.lockSurface(MacOSXOnscreenGLDrawable.java:163)
        at com.sun.opengl.impl.macosx.MacOSXOnscreenGLContext.makeCurrentImpl(MacOSXOnscreenGLContext.java:57)
        at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:134)
        at javax.media.j3d.JoglPipeline$QueryCanvas.doQuery(JoglPipeline.java:9049)
        at javax.media.j3d.JoglPipeline.getBestConfiguration(JoglPipeline.java:8797)
        at javax.media.j3d.Renderer.doWork(Renderer.java:514)
        at javax.media.j3d.J3dThread.run(J3dThread.java:275)
Caused by: java.lang.ClassNotFoundException: apple.awt.ComponentModel
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 11 more

java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

HOWEVER, if I run it using the old Apple Java 1.6 (which is still on my system), it works perfectly.
/System/Library/Frameworks/JavaVM.framework/Home/bin/java -jar GeomSS.jar
Works!

/System/Library/Frameworks/JavaVM.framework/Home/bin/java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

I have made certain that old versions of Java3D and/or JOGL are not present in any of my Library directories (~/Library/Java/Extensions:/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Libraries).

I need this to work with Java 1.7 for wide distribution.  Any suggestions?

--Joe Huwaldt
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

gouessej
Administrator
Sorry but you're wrong, com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable comes from JOGL 1.1.1, not from JOGL 2. There is still an old version of Java3D somewhere on your machine which requires JOGL 1.1.1. Your stack trace proves I'm right.

Edit.: The JOGL classes used under Mac that appear in your stack trace have been moved into jogamp.opengl.macosx.cgl in JOGL 2. There is still an old version of Java3D which uses an old version of JOGL compatible with Apple JVM but not with Oracle JVM.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

jhuwaldt
Julien,

And I in turn am sorry.  The world is a different place in the light of a new day.  I found the offending copy of JOGL 1.1.1.  Now it works fine.

Joe Huwaldt
Reply | Threaded
Open this post in threaded view
|

Re: Jogl problem on OSX 10.9

gouessej
Administrator
Don't be sorry. I have to add a paragraph about this kind of trouble into my article on Ardor3D and I'll add a link to this paragraph into the one on Java3D. Thank you for the reminder ;)

Edit.: GeomSS is interesting, it provides another way of modeling, by using scripts. It can be a nice source of inspiration.
Julien Gouesse | Personal blog | Website