• MAT工具在MacBook的安装


    当Java应用出现内存溢出的问题的时候,需要拿工具分析dump文件的。JDK自带的jvisualvm和jhat都可以使用,另外还有一个工具是 Memory Analyzer Tool ,支持独立运行和作为Eclipse插件两种方式使用。

    因为已经不再使用Eclipse,所以这次准备在MacBook上装一个独立运行的版本,碰到了一点坑,mark一下。

    1 下载

    官网是 http://liaojunyong.spaces.live.com ,当前最新版本是 1.9.1,选择下载 Mac OSX (Mac/Cocoa/x86_64) 版。下载后解压为目录 mat.app 。

    2 移动到/Applications

    当前这个目录在 Downloads 目录中,运行不方便,考虑将其移动到应用程序中。打开控制台,输入命令

    Downloads % cd /Applications
    /Applications %
    /Applications %sudo mv /Users/<username>/Downloads/mat.app .

    输入管理员密码后移动成功。进入启动台就能看到应用mat了。

    如果直接点击mat应用,会启动失败,提示我们去查看日志文件

    .eclipse/1005214708_macosx_cocoa_x86_64/configuration/1578452593396.log,其主要内容为

    java.lang.IllegalStateException: 
    	The platform metadata area could not be written: 
    	/private/var/folders/_h/mmd26ldd751g7gnx6wjfghzw0000gn/T/AppTranslocation/47640E19-535C-4C8D-84DA-8D0DDA56BFD4/d/mat.app/Contents/MacOS/workspace/.metadata.  
    By default the platform writes its contentunder the current working directory when the platform is launched.  
    Use the -data parameter to specify a different content area for the platform.

    提示我们需要使用参数 -data 指定一个工作空间。

    3 修改配置文件

    我们先创建一个 workspace目录,比如我直接创建在其安装目录下,完整路径为

    /Applications/mat.app/Contents/MacOS/workspace

    然后使用文本编辑器编辑文件 /Applications/mat.app/Contents/Info.plist 找到<array>部分,修改内容为

    <array>
        <!-- 指定启动使用的JVM -->
        <string>-vm</string>
        <string>/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin/java</string>
        <!-- 指定启动的工作空间 -->
        <string>-data</string>
        <string>/Applications/mat.app/Contents/MacOS/workspace</string>
        <!-- 原有内容,不动 -->
        <string>-keyring</string>
        <string>~/.eclipse_keyring</string>
    </array>

    然后在运行mat.app,启动成功。

  • 相关阅读:
    Nginx编译安装及平滑升级
    alertmanager 分组,抑制, 静默
    alertmanager 邮件告警&自定义告警模板
    alertmanager 高可用
    程序运行报错UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte
    Postman 导入curl 、导出成curl、导出成对应语言代码
    Python 字符串操作(截取/替换/查找/分割)
    In testLogin: indirect fixture *** doesn‘t exist
    postman 传参传递二进制流文件
    开发经验01
  • 原文地址:https://www.cnblogs.com/codestory/p/12165584.html
Copyright © 2020-2023  润新知