Re: Illegal reflective access with jogamp-java3d1.7.0-final
Posted by RickLutowski on Apr 03, 2023; 2:31am
URL: https://forum.jogamp.org/Illegal-reflective-access-with-jogamp-java3d1-7-0-final-tp4042358p4042386.html
1. Installed JDK17:
$ java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)
2. Ran a couple of java3d programs using:
java --add-opens java.desktop/sun.awt=ALL-UNNAMED \
--add-opens java.base/java.lang=ALL-UNNAMED \
-cp /usr/local/_jreality:\
/usr/local/_jreality/j3dcore.jar:\
/usr/local/_jreality/j3dutils.jar:\
/usr/local/_jreality/vecmath.jar:\
/usr/local/_jreality/jogamp-fat.jar \
<main_classname>
3. The good news:
"Illegal reflective access" is gone.
4. The bad news:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln5582542516104284874/jln3715176253332323696/natives/linux-amd64/libnativewindow_awt.so: /usr/lib/jvm/jdk-17.0.6/lib/libjawt.so: version `SUNWprivate_1.1' not found (required by /tmp/jogamp_0000/file_cache/jln5582542516104284874/jln3715176253332323696/natives/linux-amd64/libnativewindow_awt.so)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
at java.base/java.lang.Runtime.load0(Runtime.java:755)
at java.base/java.lang.System.load(System.java:1953)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:603)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487)
at jogamp.nativewindow.NWJNILibLoader.access$000(NWJNILibLoader.java:39)
at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:49)
at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:41)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at jogamp.nativewindow.NWJNILibLoader.loadNativeWindow(NWJNILibLoader.java:41)
at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:336)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at com.jogamp.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:344)
at com.jogamp.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:340)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:340)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1721)
at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:230)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1021)
at com.jogamp.opengl.GLProfile.get(GLProfile.java:1050)
at com.jogamp.opengl.GLProfile.getMaxFixedFunc(GLProfile.java:803)
at org.jogamp.java3d.JoglPipeline.initialize(JoglPipeline.java:143)
at org.jogamp.java3d.Pipeline.createPipeline(Pipeline.java:101)
at org.jogamp.java3d.MasterControl.loadLibraries(MasterControl.java:893)
at org.jogamp.java3d.VirtualUniverse.<clinit>(VirtualUniverse.java:266)
at org.jogamp.java3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:317)
at java.desktop/java.awt.GraphicsDevice.getBestConfiguration(GraphicsDevice.java:205)
at com.jreality.surveyor.gui.Surveyor.<init>(Surveyor.java:390)
at com.jreality.surveyor.gui.Surveyor.<init>(Surveyor.java:322)
at com.jreality.surveyor.gui.Surveyor.main(Surveyor.java:1676)
I guess this is progress.