java - 当发生特殊异常时是否可以创建 Java 转储?

标签 java

发生特殊异常时是否可以创建 Java 转储?由于我需要在异常发生时检查转储内存,例如当发生空指针异常时,它可以自动生成转储。我们知道.net平台有这样一个工具procdump https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx ,不知道Java有没有类似的方法?

最佳答案

您可以处理所需的异常,并将以下代码放入 catch 中以随时捕获堆转储

ObjectName memoryMXBean = new ObjectName("com.sun.management:type=HotSpotDiagnostic");
Object[] params = new Object[] { "myHeapDump.hprof", Boolean.TRUE };
String[] signature = new String[] { String.class.getName(), boolean.class.getName() };
Object result = connection.invoke(memoryMXBean, "dumpHeap", params, signature);

关于java - 当发生特殊异常时是否可以创建 Java 转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41568807/

相关文章:

java - 测量代码段的 Java 执行时间、内存使用和 CPU 负载

java - 我们可以从 jenkins 内的 shell 脚本执行 vim 命令吗?

Java:打开默认邮件应用程序并创建新邮件并填充收件人和主题字段

java - 应用程序类 'com.sun.xml.messaging.saaj.soap.SOAPPartImpl.:119' 引发的异常

Java:观察者或synchronized+notify()对串口传入数据

java - REST API 中的 gZip 实现

java - MongoDB 统计计数与文档数量不同

java - 引用其自己的列别名的查询出现 UCanAccess "object not found"错误

java - 更新 API Manager 2.0 和 IDS 5.2 的自定义声明 jar 文件

java - NGINX反向代理背后的SpringBoot API REST