mopemope/meghanada-emacs

Meghanada not working on M1 Mac

Opened this issue · 5 comments

Hi there,

When opening a Java file for the first time using an M1 Mac (using Doom Emacs), I get the following error:

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
[INFO ][Main      :  54] use java home: /Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home
[INFO ][Main      :  55] use java runtime: OpenJDK Runtime Environment 15.0.1+9
[INFO ][Main      :  59] use java vm: OpenJDK 64-Bit Server VM 15.0.1+9
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/wouternederhof/Library/Caches/JNA/temp/jna3314717361699394802.tmp: dlopen(/Users/wouternederhof/Library/Caches/JNA/temp/jna3314717361699394802.tmp, 1): no suitable image found.  Did find:
	/Users/wouternederhof/Library/Caches/JNA/temp/jna3314717361699394802.tmp: no matching architecture in universal wrapper
	/Users/wouternederhof/Library/Caches/JNA/temp/jna3314717361699394802.tmp: no matching architecture in universal wrapper
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2407)
	at java.base/java.lang.Runtime.load0(Runtime.java:747)
	at java.base/java.lang.System.load(System.java:1857)
	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018)
	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988)
	at com.sun.jna.Native.<clinit>(Native.java:195)
	at com.sun.jna.Structure.setAlignType(Structure.java:280)
	at com.sun.jna.Structure.<init>(Structure.java:197)
	at com.sun.jna.Structure.<init>(Structure.java:193)
	at com.sun.jna.Structure.<init>(Structure.java:180)
	at com.sun.jna.Structure.<init>(Structure.java:172)
	at com.sun.jna.platform.mac.SystemB$Timeval.<init>(SystemB.java:530)
	at oshi.hardware.platform.mac.MacCentralProcessor.<clinit>(MacCentralProcessor.java:58)
	at oshi.hardware.platform.mac.MacHardwareAbstractionLayer.getProcessor(MacHardwareAbstractionLayer.java:59)
	at meghanada.telemetry.TelemetryUtils.<clinit>(TelemetryUtils.java:116)
	at meghanada.Main.main(Main.java:66)
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
[INFO ][Main      :  54] use java home: /Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home
[INFO ][Main      :  55] use java runtime: OpenJDK Runtime Environment 15.0.1+9
[INFO ][Main      :  59] use java vm: OpenJDK 64-Bit Server VM 15.0.1+9
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/wouternederhof/Library/Caches/JNA/temp/jna7383150325019145258.tmp: dlopen(/Users/wouternederhof/Library/Caches/JNA/temp/jna7383150325019145258.tmp, 1): no suitable image found.  Did find:
	/Users/wouternederhof/Library/Caches/JNA/temp/jna7383150325019145258.tmp: no matching architecture in universal wrapper
	/Users/wouternederhof/Library/Caches/JNA/temp/jna7383150325019145258.tmp: no matching architecture in universal wrapper
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2407)
	at java.base/java.lang.Runtime.load0(Runtime.java:747)
	at java.base/java.lang.System.load(System.java:1857)
	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018)
	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988)
	at com.sun.jna.Native.<clinit>(Native.java:195)
	at com.sun.jna.Structure.setAlignType(Structure.java:280)
	at com.sun.jna.Structure.<init>(Structure.java:197)
	at com.sun.jna.Structure.<init>(Structure.java:193)
	at com.sun.jna.Structure.<init>(Structure.java:180)
	at com.sun.jna.Structure.<init>(Structure.java:172)
	at com.sun.jna.platform.mac.SystemB$Timeval.<init>(SystemB.java:530)
	at oshi.hardware.platform.mac.MacCentralProcessor.<clinit>(MacCentralProcessor.java:58)
	at oshi.hardware.platform.mac.MacHardwareAbstractionLayer.getProcessor(MacHardwareAbstractionLayer.java:59)
	at meghanada.telemetry.TelemetryUtils.<clinit>(TelemetryUtils.java:116)
	at meghanada.Main.main(Main.java:66)

I am getting the Same error using the OpenJDK 11:

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
[INFO ][Main      :  54] use java home: /opt/homebrew/Cellar/openjdk@11/11.0.10/libexec/openjdk.jdk/Contents/Home
[INFO ][Main      :  55] use java runtime: OpenJDK Runtime Environment 11.0.10+9
[INFO ][Main      :  59] use java vm: OpenJDK 64-Bit Server VM 11.0.10+9
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/patric/Library/Caches/JNA/temp/jna16490857632165893392.tmp: dlopen(/Users/patric/Library/Caches/JNA/temp/jna16490857632165893392.tmp, 1): no suitable image found.  Did find:
	/Users/patric/Library/Caches/JNA/temp/jna16490857632165893392.tmp: no matching architecture in universal wrapper
	/Users/patric/Library/Caches/JNA/temp/jna16490857632165893392.tmp: no matching architecture in universal wrapper
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
	at java.base/java.lang.Runtime.load0(Runtime.java:768)
	at java.base/java.lang.System.load(System.java:1837)
	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018)
	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988)
	at com.sun.jna.Native.<clinit>(Native.java:195)
	at com.sun.jna.Structure.setAlignType(Structure.java:280)
	at com.sun.jna.Structure.<init>(Structure.java:197)
	at com.sun.jna.Structure.<init>(Structure.java:193)
	at com.sun.jna.Structure.<init>(Structure.java:180)
	at com.sun.jna.Structure.<init>(Structure.java:172)
	at com.sun.jna.platform.mac.SystemB$Timeval.<init>(SystemB.java:530)
	at oshi.hardware.platform.mac.MacCentralProcessor.<clinit>(MacCentralProcessor.java:58)
	at oshi.hardware.platform.mac.MacHardwareAbstractionLayer.getProcessor(MacHardwareAbstractionLayer.java:59)
	at meghanada.telemetry.TelemetryUtils.<clinit>(TelemetryUtils.java:116)
	at meghanada.Main.main(Main.java:66)

Same here with OpenJDK 15

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
[INFO ][Main      :  54] use java home: /opt/homebrew/Cellar/openjdk/15.0.2/libexec/openjdk.jdk/Contents/Home
[INFO ][Main      :  55] use java runtime: OpenJDK Runtime Environment 16+14
[INFO ][Main      :  59] use java vm: OpenJDK 64-Bit Server VM 16+14
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/derrik/Library/Caches/JNA/temp/jna5581008252115319461.tmp: dlopen(/Users/derrik/Library/Caches/JNA/temp/jna5581008252115319461.tmp, 1): no suitable image found.  Did find:
	/Users/derrik/Library/Caches/JNA/temp/jna5581008252115319461.tmp: no matching architecture in universal wrapper
	/https://pastebin.com/sFE9MXshhttps://pastebin.com/sFE9MXshhttps://pastebin.com/sFE9MXshUsers/derrik/Library/Caches/JNA/temp/jna5581008252115319461.tmp: no matching architecture in universal wrapper
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2383)
	at java.base/java.lang.Runtime.load0(Runtime.java:746)
	at java.base/java.lang.System.load(System.java:1857)
	at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018)
	at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988)
	at com.sun.jna.Native.<clinit>(Native.java:195)
	at com.sun.jna.Structure.setAlignType(Structure.java:280)
	at com.sun.jna.Structure.<init>(Structure.java:197)
	at com.sun.jna.Structure.<init>(Structure.java:193)
	at com.sun.jna.Structure.<init>(Structure.java:180)
	at com.sun.jna.Structure.<init>(Structure.java:172)
	at com.sun.jna.platform.mac.SystemB$Timeval.<init>(SystemB.java:530)
	at oshi.hardware.platform.mac.MacCentralProcessor.<clinit>(MacCentralProcessor.java:58)
	at oshi.hardware.platform.mac.MacHardwareAbstractionLayer.getProcessor(MacHardwareAbstractionLayer.java:59)
	at meghanada.telemetry.TelemetryUtils.<clinit>(TelemetryUtils.java:116)
	at meghanada.Main.main(Main.java:66)

This is the M1 ARM native openjdk installed via ARM homebrew, not the Intel simulated Rosetta version. Same with the emacs install.

22/09/2022 Mac M1 not supported yet

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. [INFO ][Main : 54] use java home: /Users/macpapo/.asdf/installs/java/oracle-17 [INFO ][Main : 55] use java runtime: Java(TM) SE Runtime Environment 17+35-LTS-2724 [INFO ][Main : 59] use java vm: Java HotSpot(TM) 64-Bit Server VM 17+35-LTS-2724 Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/macpapo/Library/Caches/JNA/temp/jna16511177733960061840.tmp: dlopen(/Users/macpapo/Library/Caches/JNA/temp/jna16511177733960061840.tmp, 0x0001): tried: '/Users/macpapo/Library/Caches/JNA/temp/jna16511177733960061840.tmp' (fat file, but missing compatible architecture (have (i386,x86_64), need (arm64e))) 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.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1018) at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:988) at com.sun.jna.Native.<clinit>(Native.java:195) at com.sun.jna.Structure.setAlignType(Structure.java:280) at com.sun.jna.Structure.<init>(Structure.java:197) at com.sun.jna.Structure.<init>(Structure.java:193) at com.sun.jna.Structure.<init>(Structure.java:180) at com.sun.jna.Structure.<init>(Structure.java:172) at com.sun.jna.platform.mac.SystemB$Timeval.<init>(SystemB.java:530) at oshi.hardware.platform.mac.MacCentralProcessor.<clinit>(MacCentralProcessor.java:58) at oshi.hardware.platform.mac.MacHardwareAbstractionLayer.getProcessor(MacHardwareAbstractionLayer.java:59) at meghanada.telemetry.TelemetryUtils.<clinit>(TelemetryUtils.java:116) at meghanada.Main.main(Main.java:66)

bion commented

Anyone had luck with this yet?