Posted by
douglaslyon on
Jan 09, 2018; 12:34am
URL: https://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038496.html
Hi Julien,
In webstart I now have:
<j2se version="9+"
initial-heap-size="64m"
max-heap-size="384m"
java-vm-args="-ea --add-exports=java.base/com.jogamp=ALL-UNNAMED"
/>
It runs OK on the mac, except for the following error:
Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo
cannot access class sun.awt.AppContext (in module java.desktop) because
module java.desktop does not export sun.awt to unnamed module @28bdf016
java.lang.IllegalAccessException: class
com.jogamp.nativewindow.awt.AppContextInfo cannot access class
sun.awt.AppContext (in module java.desktop) because module java.desktop
does not export sun.awt to unnamed module @28bdf016
at
java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown
Source)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at
com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186)
at
com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130)
at
com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:45)
at com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
at
jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.<init>(MacOSXJAWTWindow.java:79)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at
jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
at
jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
at
com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:593)
at
com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:712)
at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:623)
at java.desktop/java.awt.Container.addNotify(Unknown Source)
at java.desktop/java.awt.Window.addNotify(Unknown Source)
at java.desktop/java.awt.Frame.addNotify(Unknown Source)
at java.desktop/java.awt.Window.show(Unknown Source)
at java.desktop/java.awt.Component.show(Unknown Source)
at java.desktop/java.awt.Component.setVisible(Unknown Source)
at java.desktop/java.awt.Window.setVisible(Unknown Source)
at j3d.JOGLQuad.main(JOGLQuad.java:96)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo
cannot access class sun.awt.AppContext (in module java.desktop) because
module java.desktop does not export sun.awt to unnamed module @28bdf016
java.lang.IllegalAccessException: class
com.jogamp.nativewindow.awt.AppContextInfo cannot access class
sun.awt.AppContext (in module java.desktop) because module java.desktop
does not export sun.awt to unnamed module @28bdf016
at
java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown
Source)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at
com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186)
at
com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130)
at
com.jogamp.nativewindow.awt.AppContextInfo.invokeOnAppContextThread(AppContextInfo.java:102)
at
com.jogamp.nativewindow.awt.JAWTWindow.attachSurfaceLayer(JAWTWindow.java:491)
at
jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$AttachGLLayerCmd.run(MacOSXCGLContext.java:764)
at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:125)
On windows we get:
Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo
cannot access class sun.awt.AppContext (in module java.desktop) because
module java.desktop does not export sun.awt to unnamed module @28bdf016
java.lang.IllegalAccessException: class
com.jogamp.nativewindow.awt.AppContextInfo cannot access class
sun.awt.AppContext (in module java.desktop) because module java.desktop
does not export sun.awt to unnamed module @28bdf016
at
java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown
Source)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at
com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186)
at
com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130)
at
com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:45)
at com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
at
jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.<init>(MacOSXJAWTWindow.java:79)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at
jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
at
jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
at
com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:593)
at
com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:712)
at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:623)
at java.desktop/java.awt.Container.addNotify(Unknown Source)
at java.desktop/java.awt.Window.addNotify(Unknown Source)
at java.desktop/java.awt.Frame.addNotify(Unknown Source)
at java.desktop/java.awt.Window.show(Unknown Source)
at java.desktop/java.awt.Component.show(Unknown Source)
at java.desktop/java.awt.Component.setVisible(Unknown Source)
at java.desktop/java.awt.Window.setVisible(Unknown Source)
at j3d.JOGLQuad.main(JOGLQuad.java:96)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Bug 1004: Caught: class com.jogamp.nativewindow.awt.AppContextInfo
cannot access class sun.awt.AppContext (in module java.desktop) because
module java.desktop does not export sun.awt to unnamed module @28bdf016
java.lang.IllegalAccessException: class
com.jogamp.nativewindow.awt.AppContextInfo cannot access class
sun.awt.AppContext (in module java.desktop) because module java.desktop
does not export sun.awt to unnamed module @28bdf016
at
java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Unknown
Source)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at
com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:186)
at
com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:130)
at
com.jogamp.nativewindow.awt.AppContextInfo.invokeOnAppContextThread(AppContextInfo.java:102)
at
com.jogamp.nativewindow.awt.JAWTWindow.attachSurfaceLayer(JAWTWindow.java:491)
at
jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$AttachGLLayerCmd.run(MacOSXCGLContext.java:764)
at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:125)
And it does not run.
The error:
"because module java.desktop does not export sun.awt to unnamed module
@28bdf016" is telling.
I know NOTHING about exports (it is totally new to me)...so I tried:
<j2se version="9+"
initial-heap-size="64m"
max-heap-size="384m"
java-vm-args="-ea --add-exports=java.desktop/sun.awt=ALL-UNNAMED"
/>
Now I get:
java.lang.ArrayIndexOutOfBoundsException: -1
at
jogamp.opengl.windows.wgl.awt.WindowsAWTWGLGraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(WindowsAWTWGLGraphicsConfigurationFactory.java:171)
at
com.jogamp.nativewindow.GraphicsConfigurationFactory.chooseGraphicsConfiguration(GraphicsConfigurationFactory.java:424)
at
com.jogamp.opengl.awt.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:1560)
at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:611)
at java.desktop/java.awt.Container.addNotify(Unknown Source)
at java.desktop/java.awt.Window.addNotify(Unknown Source)
at java.desktop/java.awt.Frame.addNotify(Unknown Source)
at java.desktop/java.awt.Window.show(Unknown Source)
at java.desktop/java.awt.Component.show(Unknown Source)
at java.desktop/java.awt.Component.setVisible(Unknown Source)
at java.desktop/java.awt.Window.setVisible(Unknown Source)
at j3d.JOGLQuad.main(JOGLQuad.java:96)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeApplication(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.executeMainClass(Unknown
Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at jdk.javaws@9.0.1/com.sun.javaws.Launcher.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
So that helped...a little!
I am looking at:
https://jogamp.org/bugzilla/show_bug.cgi?id=1317again. I see where you put in:
--permit-illegal-access
so, I figured;
<j2se version="9+"
initial-heap-size="64m"
max-heap-size="384m"
java-vm-args="--permit-illegal-access -ea
--add-exports=java.desktop/\
sun.awt=ALL-UNNAMED"
/>
might help...but it did not...so then I tried:
--add-exports=java.base/java.lang=ALL-UNNAMED
--add-exports=java.desktop/sun.awt=ALL-UNNAMED
--add-exports=java.desktop/sun.java2d=ALL-UNNAMED
but that did not work...
So, I got rid of the "ea" option to the jvm...and now
IT WORKS. The crowd is wild.
----------------------- The following is my solution ----------
<jnlp spec="1.0+"
codebase="
http://show.docjava.com:80/book/cgij/code/jnlp/"
>
<information>
<title>j3d.JOGLQuad</title>
<vendor>DocJava, Inc.</vendor>
<homepage href="
http://www.docjava.com"/>
<icon href="
http://show.docjava.com:80/consulti/docjava.jpe"/>
<offline-allowed />
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="9+"
initial-heap-size="64m"
max-heap-size="384m"
java-vm-args="--add-exports=java.base/java.lang=ALL-UNNAMED --add-expo
rts=java.desktop/sun.awt=ALL-UNNAMED
--add-exports=java.desktop/sun.java2d=ALL-U
NNAMED "
/>
<extension name="Java3D" href="jogl.jnlp"></extension>
<jar href="joglquad.jar" />
</resources>
<application-desc main-class="j3d.JOGLQuad" />
</jnlp>
Will fine tune to see what will happen. The MAC errors are NOW gone!!
The NESTED jogl.jnlp has:
<jnlp spec="1.0+"
codebase="
http://show.docjava.com:80/book/cgij/code/jnlp/"
>
<information>
<title>Java 3D</title>
<vendor>DocJava Inc.</vendor>
<homepage href="
http://www.docjava.com"/>
<description>Java 3D library</description>
</information>
<security>
<all-permissions/>
</security>
<resources os="Windows">
<jar href="libs/jogl/j3dcore.jar" download="eager"/>
<jar href="libs/jogl/j3dutils.jar" download="eager"/>
<jar href="libs/jogl/vecmath.jar" download="eager"/>
</resources>
<resources os="Windows" arch="amd64">
<nativelib href="libs/jogl/natives/windows-amd64/gluegen-rt.dll.jar"
download="e
ager"/>
<nativelib href="libs/jogl/natives/windows-amd64/joal.dll.jar"
download="eager"/
>
<nativelib href="libs/jogl/natives/windows-amd64/jocl.dll.jar"
download="eager"/
>
<nativelib href="libs/jogl/natives/windows-amd64/jogl_desktop.dll.jar"
download=
"eager"/>
<nativelib href="libs/jogl/natives/windows-amd64/jogl_mobile.dll.jar"
download="
eager"/>
<nativelib
href="libs/jogl/natives/windows-amd64/nativewindow_awt.dll.jar" downl
oad="eager"/>
<nativelib
href="libs/jogl/natives/windows-amd64/nativewindow_win32.dll.jar" dow
nload="eager"/>
<nativelib href="libs/jogl/natives/windows-amd64/newt.dll.jar"
download="eager"/
>
<nativelib href="libs/jogl/natives/windows-amd64/oculusvr.dll.jar"
download="eag
er"/>
<nativelib href="libs/jogl/natives/windows-amd64/soft_oal.dll.jar"
download="eag
er"/>
</resources>
<resources os="Windows" arch="x86">
<nativeib href="libs/jogl/natives/windows-i586/gluegen-rt.dll.jar"
download="eag
er"/>
<nativeib href="libs/jogl/natives/windows-i586/joal.dll.jar"
download="eager"/>
<nativeib href="libs/jogl/natives/windows-i586/jocl.dll.jar"
download="eager"/>
<nativeib href="libs/jogl/natives/windows-i586/jogl_desktop.dll.jar"
download="e
ager"/>
<nativeib href="libs/jogl/natives/windows-i586/jogl_mobile.dll.jar"
download="ea
ger"/>
<nativeib href="libs/jogl/natives/windows-i586/nativewindow_awt.dll.jar"
downloa
d="eager"/>
<nativeib
href="libs/jogl/natives/windows-i586/nativewindow_win32.dll.jar" downl
oad="eager"/>
<nativeib href="libs/jogl/natives/windows-i586/newt.dll.jar"
download="eager"/>
<nativeib href="libs/jogl/natives/windows-i586/oculusvr.dll.jar"
download="eager
"/>
<nativeib href="libs/jogl/natives/windows-i586/soft_oal.dll.jar"
download="eager
"/>
</resources>
<resources os="Mac">
<jar href="libs/jogl/j3dcore.jar" download="eager"/>
<jar href="libs/jogl/j3dutils.jar" download="eager"/>
<jar href="libs/jogl/vecmath.jar" download="eager"/>
<jar href="libs/jogl/jogamp-fat.jar" download="eager"/>
</resources>
<resources os="Linux" arch="i386">
<nativelib href = "libs/linux/jogl-natives-linux-i586.jar" />
</resources>
<resources os="Linux" arch="x86">
<nativelib href = "libs/linux/jogl-natives-linux-i586.jar" />
</resources>
<resources os="Linux" arch="amd64">
<nativelib href = "libs/linux/jogl-natives-linux-amd64.jar" />
</resources>
<resources os="Linux" arch="x86_64">
<nativelib href = "libs/linux/jogl-natives-linux-amd64.jar" />
</resources>
<component-desc />
</jnlp>
This is not as elegant as I would have liked. And the linux stuff is not
working, at the moment....but hey, its progress!
Bottom line, webstart works on the mac and windows 7 with jogl and jdk 8
or jdk9. I have not tested windows 10...yet.
Thank you so much for your help on this!!
Regards,
- Doug
On 1/8/18 4:34 PM, gouessej [via jogamp] wrote: