since the newest OS update on Macs, Sequoia 15.2), jmonkey applications are not working anymore. The test examples run, but show no graphics (black screen) or a flickering screen.
I’m running JME apps successfully on macOS Sequoia 15.3 (24D60).
I’ve run them on both Java 1.8 and Java 21.
I’ve run them on both JME 3.7.0-stable and 3.8.0-alpha2.
There are a few gotchas:
To run on macOS, you must pass “-XstartOnFirstThread” to the JVM.
To run on Apple Silicon, you must specify LWJGL v3 (jme3-lwjgl3) instead of LWJGL v2 (jme3-lwjgl) and disable the AWT settings dialog in main() with application.setShowSettings(false).
If you’re still stuck, please provide the Java version and JME version you’re using.
I can make it more precise:
jme 3.7.0-stable
LWJGL 3.3.3+5
The problem occurs ONLY on Sequoia 15.2 and 15.3 on INTEL Macs. It works on all arm and also on Intel-Macs with older OS.
I ran my application with DEBUG mode. It opens the Window, but does no rendering. In the working situation, the logfile log the compilation of the shaders, which is in the problematic sitauion not the case. We don’t get any exception.
A friend haveing a OS-X 15.3 machin reports, that alos the test cases do not run.
Here is the log:
INFO JmeDesktopSystem 09:36:17 Running on jMonkeyEngine 3.7.0-stable
Branch: HEAD
Git Hash: bc6cdf5
Build Date: 2024-10-31
[LWJGL] Version: 3.3.3+5
OS: Mac OS X v15.3.2
JRE: macOS x86_64 21.0.3
JVM: Java HotSpot™ 64-Bit Server VM v21.0.3+7-LTS-152 by Oracle Corporation
[LWJGL] Loading JNI library: lwjgl
Module: org.lwjgl
macos/x64/org/lwjgl/liblwjgl.dylib not found in java.library.path=.
Loaded from java.library.path: ./liblwjgl.dylib
[LWJGL] Java 9 check intrinsics enabled
[LWJGL] Closure Registry: simple
[LWJGL] Loading library: jemalloc
Module: org.lwjgl.jemalloc
Loaded from java.library.path: ./libjemalloc.dylib
[LWJGL] MemoryUtil allocator: JEmallocAllocator
[LWJGL] Loading library: glfw
Module: org.lwjgl.glfw
Loaded from java.library.path: ./libglfw.dylib
[LWJGL] Loading library: objc
Module: org.lwjgl
[LWJGL] Java 9 text decoding enabled
Loaded from system paths: /usr/lib/libobjc.A.dylib
2025-03-16 09:36:19.363 java[6177:769825] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-16 09:36:19.363 java[6177:769825] +[IMKInputSession subclass]: chose IMKInputSession_Modern
[LWJGL] Java 10 multiplyHigh enabled
INFO LwjglContext 09:36:19 LWJGL 3.3.3+5 context running on thread jME3 Main
Graphics Adapter: GLFW 3.4.0 Cocoa NSGL Null EGL OSMesa monotonic dynamic
[LWJGL] Loading JNI library: lwjgl_opengl
Module: org.lwjgl.opengl
macos/x64/org/lwjgl/opengl/liblwjgl_opengl.dylib not found in java.library.path=.
Loaded from java.library.path: ./liblwjgl_opengl.dylib
[LWJGL] Loading library: /System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL
Module: org.lwjgl.opengl
Success
INFO GLRenderer 09:36:19 OpenGL Renderer Information
Vendor: ATI Technologies Inc.
Renderer: AMD Radeon Pro 560X OpenGL Engine
OpenGL Version: 2.1 ATI-6.1.13
GLSL Version: 1.20
Profile: Compatibility
[LWJGL] Loading library: openal
Module: org.lwjgl.openal
Loaded from java.library.path: ./libopenal.dylib
INFO ALAudioRenderer 09:36:19 Audio Renderer Information
My best guess is it’s an LWJGL-on-MacOS issue. Alas, I currently don’t have access to any Intel Macs where I can run interactive tests. I’ll do some searching and think about what tests you might run to further pin down the issue.
The reason for this (library opening) is, that I deploy the native libs not inside the jar but as extra file on the lib path. This is ok.
To give another hint:
On the Old intel macs with the new sequoia, the program runs with
Jme 3.2-stable and LWJGL 2.9.3
But not with jme 3.3.2 and LWJGL 3.3.0 and alos not with the newer ones
From my point of view, the Window-System changed to GLFW. Maybe this is the reason?