Login  Register

Re: How to enable Gluegen (Java3D) on Java 9

Posted by Predrag Bokšić on Nov 29, 2017; 2:02am
URL: https://forum.jogamp.org/How-to-enable-Gluegen-Java3D-on-Java-9-tp4038338p4038343.html

That is an interesting finding!

I built a project with the stable libraries (https://jogamp.org/wiki/index.php/Java3D_FAQ) and a single class called the StillCube. I included the 3 libraries from Java3D and the entire JogAmp jar folder, so the classpath is long. There is an error message displayed all the way down below.

"C:\Program Files\Java\jdk\bin\java" --add-exports=java.base/java.lang=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA\lib\idea_rt.jar=21036:C:\Program Files\JetBrains\IntelliJ IDEA\bin" -Dfile.encoding=UTF-8 -classpath E:\idea\java3D_jdk9\project\out\production\project;E:\idea\java3D_jdk9\project\lib\j3dcore.jar;E:\idea\java3D_jdk9\project\lib\j3dutils.jar;E:\idea\java3D_jdk9\project\lib\vecmath.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-test.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-test.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-test.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-test-util.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-test-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-test-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-test-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-linux-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\joal-android-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jocl-android-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-linux-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-linux-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-solaris-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-windows-i586.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-noawt-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-android-armv6.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-linux-armv6hf.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-solaris-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-windows-amd64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-mobile-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\jogl-all-android-natives-macosx-universal.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-android-aarch64.jar;E:\idea\java3D_jdk9\project\lib\jogamp-all-platforms\jar\gluegen-rt-android-natives-macosx-universal.jar StillCube
3D [dev] 1.6.0-pre12-daily-experimental daily

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/E:/idea/java3D_jdk9/project/lib/jogamp-all-platforms/jar/gluegen.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
javax.media.j3d.IllegalRenderingStateException: Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=1.1)
        at javax.media.j3d.JoglPipeline.setupCanvasProperties(JoglPipeline.java:8083)
        at javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6440)
        at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4602)
        at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2376)
        at javax.media.j3d.Renderer.doWork(Renderer.java:881)
        at javax.media.j3d.J3dThread.run(J3dThread.java:271)

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = Win32GraphicsDevice[screen=0]
canvas = javax.media.j3d.Canvas3D[canvas0,0,0,184x161]

Process finished with exit code 1


The error is due to the second line given here:

        GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
        Canvas3D c3d = new Canvas3D(config);