문제

Java VM이 Exception_Access_violation과 충돌하여 hs_err_pidxxx.log 파일을 생성 할 때 무엇을 나타내는가? 오류 자체는 기본적으로 널 포인터 예외입니다. 항상 JVM의 버그로 인해 발생합니까, 아니면 오작동 하드웨어 또는 소프트웨어 충돌과 같은 다른 원인이 있습니까?

편집 : 기본 구성 요소가 있으며 Win32의 SWT 응용 프로그램입니다.

도움이 되었습니까?

해결책

대부분의 경우 이것은 VM의 버그입니다. 그러나 모든 기본 코드 (예 : JNI 호출)로 인해 발생할 수 있습니다.

HS_ERR_PIDXXX.LOG 파일에는 문제가 발생한 위치에 대한 정보가 포함되어 있어야합니다.

파일 내부의 "힙"섹션을 확인할 수도 있습니다. 많은 VM 버그는 쓰레기 수집 (원시적으로 구식 VM)에 의해 발생합니다. 이 섹션에서는 사고 당시 쓰레기가 실행 중인지 보여줍니다. 또한이 섹션에서는 힙의 일부 섹션이 채워진 경우 (백분율 숫자)를 보여줍니다.

VM은 또한 다른 방법보다 낮은 메모리 상황에서 충돌 할 가능성이 훨씬 높습니다.

다른 팁

답변이 발견되었습니다!

나는 같은 오류가 있었고 PID 로그 파일의 내용을 제공 한 다른 사람들이 64 비트 Windows를 실행하고 있음을 알았습니다. 나처럼. 최종 로그 파일에는 경로 문이 포함되어 있습니다. 거기에서 c : windows syswow64가 다음을 앞서 잘못 표시된 것을 볼 수 있습니다. %SystemRoot % System32. 수정하면 예외가 사라졌습니다.

가장 먼저해야 할 일은 JVM을 최신작으로 업그레이드하는 것입니다.

문제를 반복 할 수 있습니까? 아니면 무작위로 발생하는 것 같습니다. 우리는 최근에 우리의 JVM이 무작위로 모든 곳에서 충돌하는 문제가있었습니다. 하드웨어 문제였습니다. 우리는 드라이브를 새로운 서버에 넣고 완전히 사라졌습니다.

결론적으로, JVM은 JNI를 사용하지 않는다면 위의 포스터와 같이 JVM은 절대로 충돌해서는 안됩니다. 내 장은 하드웨어 문제가 있다는 것입니다.

문제의 원인은 무엇을 찾아야하는지 알고 있다면 HS_ERR* 파일에 문서화됩니다. 살펴보십시오. 여전히 명확하지 않은 경우 스택 추적의 첫 5 또는 10 줄을 게시하는 것을 고려하십시오. 하지만 1%를 알아 내야합니다. ~이다 중요한 :-) )

브라우저 위젯을 사용하고 브라우저 위젯에서 JavaScript를 실행하고 있습니까? 그렇다면 일부 버전의 SWT에는 다양한 Windows 라이브러리에서 JVM이 기본 코드로 충돌하게하는 버그가 있습니다.

내가 열린 두 가지 예는이다 버그 217306 그리고 버그 127960. 그러나이 두 버그 보고서는 SWT에서 JVM 충돌에 대한 유일한 버그 보고서는 아닙니다.

브라우저 위젯을 사용하지 않으면 이러한 제안이 도움이되지 않습니다. 이 경우 목록을 검색 할 수 있습니다. JVM 충돌을 일으키는 SWT 버그. 그 중 어느 것도 문제가되지 않으면 SWT로 버그 보고서를 열는 것이 좋습니다.

JNLP 응용 프로그램과 같은 문제가 오랫동안 사용해 왔으며 매우 신뢰할 수 있습니다. 문제는 Windows 7에서 Windows 10으로 업그레이드 한 직후에 시작되었습니다. 조사에 따르면 Win 10의 버그 일 가능성이 높습니다.

다음은 해결책이 아니라 추악한 해결 방법입니다. JRE/BIN 디렉토리에는 있습니다 Javaws.exe. 만약 내가 마우스 오른쪽 버튼을 클릭했습니다 /속성/호환성 그리고 진드기 이 프로그램을 관리자로 실행하십시오, JNLP 앱이 작동하기 시작했습니다.

이 접근 방식은 보안 문제를 일으킬 수 있으며 다른 옵션이없고 100%가 자신이하고있는 일을 알고있는 경우에만 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top