Можно ли указать, где происходят аварийные свалки JVM?
У нас есть настольное приложение, использующее JNI, которое иногда приводит к сбою JVM. К счастью, JVM создает файл hs_err_pidXXXX.log
, что весьма полезно при отладке таких ошибок. Тем не менее, он всегда, кажется, идет в текущий рабочий каталог, и это раздражает, чтобы вырыть его оттуда, так как наши другие файлы журналов все идут к определенному "месту файла журнала".
Можно ли указать другое местоположение для этих файлов аварийного дампа? Как?
Ответы
Ответ 1
Йонас,
Хотя HeapDumpPath работает для дампа кучи, это не ответ на ваш вопрос. Дамп кучи и журнал аварийных событий jvm - две отдельные вещи.
Чтобы изменить пункт назначения jvm crash, запустите java с помощью этой опции:
-XX:ErrorFile=/path/to/file.
Путь/в/файл - это место, в которое вы хотите вывести журнал сбоев JVM.
Ответ 2
По умолчанию дамп кучи создается в файле с именем java_pidpid.hprof в рабочем каталоге виртуальной машины. Вы можете указать альтернативное имя файла или каталог с опцией -XX: HeapDumpPath =. Например -XX: HeapDumpPath =/disk2/dumps приведет к созданию кучи кучи в каталоге/disk2/dumps.