MemoryAnalyzer(MAT)在macos上面无法启动的解决方案

原因

核心原因是JAVA环境没有配置好。正常情况只要把jdk配置到环境变量里面,java就是正常配置好了。但是macos有点特殊,它有一个java_home的程序,用于检查java环境。

执行java_home查看环境变量。

❯ /usr/libexec/java_home -V
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

如果出现这个错误,就说明jdk没有配置好,并不一定是jdk不能用,而是mat会使用java_home程序去检查环境,mac上所有和java相关的程序,貌似就这个mat会这样检查。

解决办法

进入 /Library/Java/JavaVirtualMachines 目录,把jdk包放到这个目录下。
在这里插入图片描述
此时执行java_home,会发现已经正常输出java版本了。

❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    17.0.12 (arm64) "Oracle Corporation" - "Java SE 17.0.12" /Library/Java/JavaVirtualMachines/jdk-17.0.12.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.0.12.jdk/Contents/Home

之后,MAT就可以正常打开了。

另外一个解决方案(对我来说没有用仅供参考)

进入MAT的应用目录, 打开,/Applications/MemoryAnalyzer.app/Contents/info.plist

配置:

 <array>
      <string>-vm</string>
      <string>/Library/Java/JavaVirtualMachines/jdk-17.0.12.jdk/Contents/Home/bin</string>
      <string>-keyring</string>
      <string>~/.eclipse_keyring</string>
</array>

更多推荐