2016-08-08 14 views
-1

나는 시작한 자바 프로세스를 가지고 며칠 동안 실행합니다. 이 프로세스의 로그는 프로세스의 수명이 끝날 때까지 잘 보였으며 다음 두 행을 볼 수있었습니다.Java 프로그램의 'std :: bad_alloc'

terminate called after throwing an instance of 'std::bad_alloc' 
    what(): std::bad_alloc 

프로세스가 끝나면 실행되는 일부 종료 논리가 있지만이 두 로그 행은 모두 보입니다.

std::bad_alloc 오류의 원인은 무엇입니까? 이 오류에 관한 여러 게시물을 보았지만 C++ 프로그래머가 아닌 C++가 아닌 Java를 사용하고 있습니다. 이것은 JVM의 버그를 나타내거나, OutOfMemoryError와 같은 JVM 관련 오류의 결과입니까?

+0

일부 DLL을 또는 C/C++로 작성된 유사한 libs와 사용하여 코드? –

+0

은 작은 메모리 누수가 들리며 운영 체제에서 jvm에게 메모리 할당을 시도하는 중 문제가 있음을 알립니다. – Javant

답변

1

네이티브 메모리가 부족합니다 (Java 힙과 별개입니다). 이 문제를 해결하려면 어떤 코드 (또는 클래스 패스의 jar 파일)가 C++을 사용하고 있는지, 그리고 일이 적시에 이루어지고 있는지 확인해야합니다.

예를 들어, 가까운 호출되지 않은 경우 당신은 아마도 동일한 문제로 실행하는 것 : https://docs.oracle.com/javase/7/docs/api/java/util/zip/GZIPInputStream.html#close()

+0

그것은 C입니까? 나는 C로 생각했을 것입니다. – Javant

+0

C에는 범위 분석 연산자가 없습니다. – amos