Haven runs successfully using Oracle Java's JRE (Java 8 Update 311)
It does not run when I use Oracle's JDK 17 for Arm 64.
In particular, it crashes, complaining about gluegen_rt not containing an arm version in its macos universal binary
gluegen_rt.jar does have arm versions for various other operating systems.
I imagine this may be a simple matter of build time options when generating the client, and if it were fixed, those of us on ARM-based Macs would get better performance/less lag when running the client. (I presume the JRE is emulating the x86 architecture to run haven at all.)
I'd appreciate if the developers would look into this. I might be able to figure this out myself, but at this point I don't even count as "new to java development" - more like "thinking about learning java, and playing with the haven client as a learning exercise". And more importantly, if they make this change, everyone gets it, and continues to get it on every update.
Finally, my apologies if I'm totally misunderstanding what I see happening here.
And for completeness, here are the messages I see.
- Code: Select all
java.lang.UnsatisfiedLinkError: /private/var/folders/zk/926c34c13hg6y_y5gyvp7hy40000gn/T/jogamp_0000/file_cache/jln15681904295245521471/jln2148212923575489460/natives/macosx-universal/libgluegen_rt.dylib: dlopen(/private/var/folders/zk/926c34c13hg6y_y5gyvp7hy40000gn/T/jogamp_0000/file_cache/jln15681904295245521471/jln2148212923575489460/natives/macosx-universal/libgluegen_rt.dylib, 0x0001): tried: '/private/var/folders/zk/926c34c13hg6y_y5gyvp7hy40000gn/T/jogamp_0000/file_cache/jln15681904295245521471/jln2148212923575489460/natives/macosx-universal/libgluegen_rt.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libgluegen_rt.dylib' (no such file)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170)
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:604)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
at com.jogamp.common.os.Platform$1.run(Platform.java:321)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:154)
at haven.JOGLPanel.mkcaps(JOGLPanel.java:73)
at haven.JOGLPanel.<init>(JOGLPanel.java:93)
at haven.MainFrame.<init>(MainFrame.java:172)
at haven.MainFrame.main2(MainFrame.java:445)
at haven.MainFrame.lambda$main$0(MainFrame.java:481)
at java.base/java.lang.Thread.run(Thread.java:833)