Возможные причины Java VM EXCEPTION_ACCESS_VIOLATION? - PullRequest
32 голосов
/ 26 сентября 2008

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

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

Ответы [ 6 ]

15 голосов
/ 26 сентября 2008

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

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

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

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

6 голосов
/ 13 ноября 2013

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

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

2 голосов
/ 26 сентября 2008

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

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

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

1 голос
/ 27 сентября 2008

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

0 голосов
/ 25 августа 2015

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

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

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

0 голосов
/ 27 января 2009

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

Два примера (которые я открыл): ошибка 217306 и ошибка 127960 . Эти два сообщения об ошибках не являются единственными сообщениями об ошибках сбоя JVM в SWT.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...