Возможные причины возникновения EXCEPTION_ACCESS_VIOLATION виртуальной машины Java?

StackOverflow https://stackoverflow.com/questions/140030

  •  02-07-2019
  •  | 
  •  

Вопрос

Когда виртуальная машина Java выходит из строя с EXCEPTION_ACCESS_VIOLATION и создает файл hs_err_pidXXX.log, что это означает?Сама ошибка по сути представляет собой исключение нулевого указателя.Всегда ли это вызвано ошибкой в ​​JVM или есть другие причины, такие как неисправность оборудования или конфликты программного обеспечения?

Редактировать:есть родной компонент, это SWT-приложение на win32.

Это было полезно?

Решение

В большинстве случаев это ошибка виртуальной машины.Но это может быть вызвано любым собственным кодом (например.вызовы JNI).

Файл hs_err_pidXXX.log должен содержать некоторую информацию о том, где возникла проблема.

Вы также можете проверить раздел «Куча» внутри файла.Многие ошибки виртуальных машин вызваны сборкой мусора (особенно в старых виртуальных машинах).Этот раздел должен показать вам, работал ли мусор во время сбоя.Также в этом разделе показано, заполнены ли некоторые разделы кучи (процентные числа).

Кроме того, виртуальная машина с большей вероятностью выйдет из строя в случае нехватки памяти, чем в противном случае.

Другие советы

Ответ найден!

У меня была такая же ошибка, и я заметил, что другие, предоставившие содержимое файла журнала pid, использовали 64-разрядную версию Windows.Прямо как я.В конце файла журнала был указан оператор PATH.Там я увидел, что C:\Windows\SysWOW64 неправильно указан перед:%Системрут%\system32.Как только я это исправил, исключение исчезло.

Первое, что вам следует сделать, это обновить вашу JVM до последней возможной версии.

Можете ли вы повторить задачу?Или кажется, что это происходит случайно?Недавно у нас возникла проблема, когда наша JVM зависала повсюду, в случайное время.Оказывается, это была аппаратная проблема.Мы поставили диски на новый сервер и все исчезло.

В итоге, JVM никогда не должна выходить из строя, как упоминалось выше, если вы не используете JNI, то я чувствую, что у вас проблема с оборудованием.

Причина проблемы будет описана в файле hs_err*, если вы знаете, что искать.Посмотрите, и если все еще неясно, рассмотрите возможность публикации первых 5 или 10 строк трассировки стека и другой соответствующей информации (не публикуйте всю информацию, там масса информации, которая не поможет - но надо разобраться, какой 1% является важный :-) )

Используете ли вы виджет «Браузер» и выполняете JavaScript в виджете «Браузер»?Если да, то в некоторых версиях SWT есть ошибки, приводящие к сбою JVM в собственном коде, в различных библиотеках Windows.

Два примера (которые я открыл): ошибка 217306 и ошибка 127960.Однако эти два отчета об ошибках — не единственные отчеты об ошибках, связанных с сбоем JVM в SWT.

Если вы не используете виджет «Браузер», эти рекомендации вам не помогут.В этом случае вы можете выполнить поиск по списку Ошибки SWT, вызывающие сбой JVM.Если ни одна из этих проблем не является вашей проблемой, я настоятельно рекомендую вам открыть отчет об ошибке с помощью SWT.

У меня та же проблема с приложением JNLP, которое я использую уже давно и которое довольно надежно.Проблема началась сразу после обновления с Windows 7 на Windows 10.По моему расследованию, скорее всего, это ошибка в Win 10.

Следующее — не решение, а уродливый обходной путь.В каталоге jre/bin есть javaws.exe.Если я щелкнул правой кнопкой мыши /Свойства/Совместимость и поставил галочку Запустите эту программу от имени администратора, приложение JNLP начало работать.

Имейте в виду, что этот подход может вызвать проблемы с безопасностью, и используйте его только в том случае, если у вас нет другого выбора и вы на 100% знаете, что делаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top