Подтвердить что ты не робот

Можно ли указать, где происходят аварийные свалки JVM?

У нас есть настольное приложение, использующее JNI, которое иногда приводит к сбою JVM. К счастью, JVM создает файл hs_err_pidXXXX.log, что весьма полезно при отладке таких ошибок. Тем не менее, он всегда, кажется, идет в текущий рабочий каталог, и это раздражает, чтобы вырыть его оттуда, так как наши другие файлы журналов все идут к определенному "месту файла журнала".

Можно ли указать другое местоположение для этих файлов аварийного дампа? Как?

4b9b3361

Ответ 1

Йонас,

Хотя HeapDumpPath работает для дампа кучи, это не ответ на ваш вопрос. Дамп кучи и журнал аварийных событий jvm - две отдельные вещи.

Чтобы изменить пункт назначения jvm crash, запустите java с помощью этой опции:

-XX:ErrorFile=/path/to/file.

Путь/в/файл - это место, в которое вы хотите вывести журнал сбоев JVM.

Ответ 2

По умолчанию дамп кучи создается в файле с именем java_pidpid.hprof в рабочем каталоге виртуальной машины. Вы можете указать альтернативное имя файла или каталог с опцией -XX: HeapDumpPath =. Например -XX: HeapDumpPath =/disk2/dumps приведет к созданию кучи кучи в каталоге/disk2/dumps.