当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,启动成功。

MAT工具在MacBook的安装的更多相关文章

  1. MAT Memory Analyzer Tool 插件安装(图解)

    MAT Memory Analyzer Tool 插件安装(图解) 原文地址 @author YHC 前段时间做了一个项目,Exception in thread "main" j ...

  2. Macbook系统环境安装wget的2个方法 - 传统包及Homebrew安装

    文章目录 这里有2个方法可以安装wget命令工具: 考虑到自身项目的拓展需要,朋友建议学习Python爬虫这样对于做大数据采集有较大的帮助,老蒋虽然每天也都接触一些脚本和程序的修改,但是并没有专业和系 ...

  3. 如何在Macbook上安装MySQL ?

    MySQL是常用的一款开源数据库,对各个平台都提供了支持,而Macbook又作为程序员的一款主力开发工具经常被使用.因此怎么在Macbook上安装MySQL进行程序开发也成了一项基本技能.下面来跟随本 ...

  4. 11年Macbook Air 安装win10 经验

    11年macbook air安装win10折腾了好久,安装成功经验记录下. 1.使用BootCamp v6.0.6133 2.启动时U盘里面有两个引导Window和EFI,选择Windows启动.EF ...

  5. mat工具MemoryAnalyzer进行分析java内存溢出hprof文件

    java服务端程序报错后会生成hprof文件,我们可以通过mat工具MemoryAnalyzer进行分析 下载地址: http://www.eclipse.org/mat/downloads.php ...

  6. vs2010问题 error MSB8008: 指定的平台工具集(v110)未安装或无效

    vs2012上的项目导入到vs2010中,编译出现 >------ 已启动生成: 项目: HelloGame.win32, 配置: Debug Win32 ------ >生成启动时间为 ...

  7. MySQL Server类型之MySQL客户端工具的下载、安装和使用

    本博文的主要内容有 .MySQL Server 5.5系列的下载 .MySQL Server 5.5系列的安装 .MySQL Server 5.5系列的使用 .MySQL Server 5.5系列的卸 ...

  8. Android内存优化之——static使用篇(使用MAT工具进行分析)

    这篇文章主要配套与Android内存优化之——static使用篇向大家介绍MAT工具的使用,我们分析的内存泄漏程序是上一篇文章中static的使用内存泄漏的比较不容易发现泄漏的第二情况和第三种情况—— ...

  9. linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本

    linux自动交互工具expect,tcl安装,以及自动互信脚本 工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番. 在网上找了许多资料也没有安装成功,摸索着总算成功了.现分享 ...

随机推荐

  1. 三 进制、精度,Java的类型转换

    进制的表示: 0b010 :  二进制表示形式:前面+0n 0100  : 八进制表示形式: 前面+0 0x001 : 16进制表示形式:前面+0x 计算机以补码的方式进行运算 进制的转换: 10进制 ...

  2. 吴裕雄--天生自然JAVA数据库编程:CallableStatement接口

    DELIMITER // DROP PROCEDURE myproc // -- 删除过程 CREATE PROCEDURE myproc(IN p1 int,INOUT p2 int,OUT p3 ...

  3. P1076 Wifi密码

    P1076 Wifi密码 转跳点:

  4. esxi命令行强行关闭虚拟机

    目的:强行关闭通过前端界面无法关闭的ESXI虚拟机 环境:esxi5.1-esxi6.5 背景:如果esxi下面某一台vm死机了,并且esxi的控制台卡死不能用,为了不影响同一个esx下其他的vm正常 ...

  5. express - 快速构建项目

    1,cnpm i express -g 2,  cnpm i express-generater -g 3, express - e  项目名

  6. Android的事件处理机制之基于监听的事件处理

    无论是桌面应用还是手机应用程序,面对用户的使用,经常需要处理的便是用户的各种动作,也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理. 而Android为我们提供了两套强大的响应机 ...

  7. android中的简单animation(四)3D transition

    animation_main_screen.xml: <?xml version="1.0" encoding="utf-8"?> <Fram ...

  8. 《新标准C++程序设计》4.5(C++学习笔记15)

    实例:长度可变的整型数组类 int main() { //要编写可变长整型数组类,使之能如下使用: CArray a; //开始里的数组是空的 ; i < ; ++i) a.push_back( ...

  9. python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)

    //2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...

  10. Nachos-Lab2-线程调度模块实现

    源码获取 https://github.com/icoty/nachos-3.4-Lab 内容一:总体概述 本实习希望通过修改Nachos系统平台的底层源代码,达到"扩展调度算法" ...