Hi All,
I have been kicking the tires on jogl for macos 10.12.2 and jdk9. The problem appears to be a single jar file: jogl-all-natives-macosx-universal.jar This contains a jnilib that will crash when loaded into the jvm under jdk9. For example: public static void main(String[] args) { System.load("/Users/lyon/current/java/j4p/jars/j3d/foo/natives/macosx-universal/libnativewindow_awt.jnilib"); } Emits: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0000000117a0a795, pid=65766, tid=6915 # # JRE version: Java(TM) SE Runtime Environment (8.0_51-b16) (build 1.8.0_51-b16) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode bsd-amd64 compressed oops) # Problematic frame: # C [libawt_lwawt.dylib+0x44795] JNI_OnLoad+0x91 Did I do something wrong? Thanks! - Doug |
Administrator
|
Hi
Do you reproduce this crash with Java 1.8? Have you tried my suggestion? http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038321.html
Julien Gouesse | Personal blog | Website
|
jdk8 works fine...this is a jdk9 problem, as far as I know.
|
In reply to this post by gouessej
Here is another example;
public class BugJdk9 { public static void main(String[] args) { String root="/Users/lyon/current/java/j3d/ij3d/foo/natives/macosx-universal/"; String libs[]={"libgluegen-rt.jnilib", "libjoal.jnilib", "libjocl.jnilib", "libjogl_desktop.jnilib", "libjogl_mobile.jnilib", "libnativewindow_awt.jnilib", "libnativewindow_macosx.jnilib", "libnewt.jnilib", "libopenal.dylib"}; System.out.println("test begins"); for (int i=0; i < libs.length;i++) { System.out.println("trying:"+libs[i]); System.load(root + libs[i]); System.out.println("loaded:"+libs[i]); } } } jdk8 has the problem too; /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Users/lyon/current/java/j4p/java3dBug/out/production/java3dBug BugJdk9 test begins trying:libgluegen-rt.jnilib loaded:libgluegen-rt.jnilib trying:libjoal.jnilib loaded:libjoal.jnilib trying:libjocl.jnilib Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opencl/llb/impl/CLMemObjectDestructorCallback at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at BugJdk9.main(BugJdk9.java:20) Caused by: java.lang.ClassNotFoundException: com.jogamp.opencl.llb.impl.CLMemObjectDestructorCallback at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 6 more Process finished with exit code 1 Am I doing something dumb? Thanks! - Doug |
In reply to this post by Douglas Lyon
Here is more information about where the crash occurs;
public class BugJdk9 { public static void main(String[] args) { String root="/Users/lyon/current/java/j3d/ij3d/foo/natives/macosx-universal/"; String libs[]={ "libgluegen-rt.jnilib", "libjoal.jnilib", "libjogl_desktop.jnilib", "libjogl_mobile.jnilib", "libnewt.jnilib", "libopenal.dylib", "libjocl.jnilib", "libnativewindow_macosx.jnilib", "libnativewindow_awt.jnilib"}; System.out.println("test begins"); for (int i=0; i < libs.length;i++) { System.out.println("trying:"+libs[i]); System.load(root + libs[i]); System.out.println("loaded:"+libs[i]); } } } /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Users/lyon/current/java/j4p/java3dBug/out/production/java3dBug:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/gluegen-rt.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/j3dcore.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/j3dutils.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/jogl.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/vecmath.jar BugJdk9 –illegal-access=permit test begins trying:libgluegen-rt.jnilib loaded:libgluegen-rt.jnilib trying:libjoal.jnilib loaded:libjoal.jnilib trying:libjogl_desktop.jnilib loaded:libjogl_desktop.jnilib trying:libjogl_mobile.jnilib loaded:libjogl_mobile.jnilib trying:libnewt.jnilib loaded:libnewt.jnilib trying:libopenal.dylib loaded:libopenal.dylib trying:libjocl.jnilib Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opencl/llb/impl/CLMemObjectDestructorCallback at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at BugJdk9.main(BugJdk9.java:21) Caused by: java.lang.ClassNotFoundException: com.jogamp.opencl.llb.impl.CLMemObjectDestructorCallback at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 6 more Process finished with exit code 1 Thus, it is the last two libraries: "libnativewindow_macosx.jnilib", "libnativewindow_awt.jnilib" where things go south... |
Administrator
|
You use JOGL 1 (used in Java3D 1.5.2 and earlier) according to your classpath, there is no "jogl.jar" in JOGL 2. I remind you that we only maintain JOGL 2 (used in Java3D 1.6.0 and 1.7.0). I clearly stated in my tutorial that Java3D 1.5 is obsolete. Please ensure that your system is clean to avoid any conflict. I advise you to use the JogAmp fat JAR jogamp-fat.jar to make things simple.
Julien Gouesse | Personal blog | Website
|
Free forum by Nabble | Edit this page |