How to set the directory where JVM stores MDMP files

Reto Merz reto.merz at
Tue Oct 1 12:13:39 UTC 2019


(Not sure whether this is the correct place to ask this, so please forgive me if not.)

A) I want to change the location where the MDMP-file is created. I set the following JVM args:

According to a old stackoverflow answer [1] this should work.
But the MDMP-file is still created in the working directory. Is it possible to change it?
Below you will find the code to cause a crash [2].

Tested with java -version
    openjdk version "11.0.4" 2019-07-16
    OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
    OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

B) If there is a way to change the MDMP-file location, does the same apply for linux?
As far as I know linux will create a CORE file (instead of a MDMP).

Reto Merz

[2] Code to crash JVM:

import java.lang.reflect.*;
public class Main {
    public static void main(String[] args) throws Exception {
        Class<?> clazz = Class.forName("sun.misc.Unsafe");
        Field field = clazz.getDeclaredField("theUnsafe");
        Object unsafe = field.get(null);
        Method putAddress = clazz.getDeclaredMethod("putAddress", long.class, long.class);
        putAddress.invoke(unsafe, 0L, 0L);

More information about the jdk-dev mailing list