[C] Thread[#1,main,5,main] terminated unexpectedly
[C] java.lang.NoSuchMethodError: Lcom/pnfsoftware/jeb/rcpclient/CocoaUIEnhancer$MenuHookObject;.actionProc(JJJ)J
[C] at org.eclipse.swt.internal.Callback.bind(Native Method)
[C] at org.eclipse.swt.internal.Callback.<init>(Callback.java:136)
[C] at org.eclipse.swt.internal.Callback.<init>(Callback.java:88)
[C] at org.eclipse.swt.internal.Callback.<init>(Callback.java:66)
[C] at com.pnfsoftware.jeb.rcpclient.CocoaUIEnhancer.hookApplicationMenu(CocoaUIEnhancer.java:2152)
[C] at com.pnfsoftware.jeb.rcpclient.JebApp.<init>(JebApp.java:45)
[C] at com.pnfsoftware.jeb.rcpclient.Launcher.main(Launcher.java:54)
It seems there is a problem with the launcher on macOS.
If you are using a Mac, I recommend you postpone the update, we are looking into a fix.
We are deploying build 5.38.1.202603131410 that should be fixing the
java.lang.NoSuchMethodError: Lcom/pnfsoftware/jeb/rcpclient/CocoaUIEnhancer$MenuHookObject;.actionProc(JJJ)J
error introduced in version 5.38.
When your update is available (you will receive the usual email), run the following command to update without starting the GUI:
$ `jeb_macos.sh -c --check-update`
Root cause:
The CocoaUIEnhancer$MenuHookObject class in jebc.jar only has actionProc(int, int, int) returning int — the 32-bit Cocoa callback signature. On 64-bit macOS (all modern Macs), SWT's Callback class determines that C.PTR_SIZEOF == 8 and looks for actionProc(long, long, long) returning long via JNI. Since that method doesn't exist, you get NoSuchMethodError.
Fix:
1.
Compiled a patched MenuHookObject class (bin/patch/com/pnfsoftware/jeb/rcpclient/CocoaUIEnhancer$MenuHookObject.class) that provides the 64-bit method signature long actionProc(long, long, long) while also keeping the old 32-bit signature for compatibility.
2.
Modified run.sh line 74 to prepend $BASEDIR/bin/patch to the classpath, so the patched class is loaded before the broken one in jebc.jar: -cp "$BASEDIR/bin/patch:$BASEDIR/bin/app/jebc.jar:..."
最后于 1小时前
被neomafo编辑
,原因: