java에서 jni를 로드하는데 에러가 발생합니다.

조회수 2912회

현재 eclipse에서 c++로만든 코드를 라이브러리로 사용하는 java코드를 만들었습니다. 그런데 로드부분에서 밑의 텍스트와 같은 에러가 발생합니다. 3일동안 찾아보다 질문합니다.

<에러 텍스트>

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd2000c889, pid=1548, tid=0x00000000000018ac

JRE version: Java(TM) SE Runtime Environment (8.0_151-b12) (build 1.8.0_151-b12)

Java VM: Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode windows-amd64 compressed oops)

Problematic frame:

C [VCRUNTIME140.dll+0xc889]

Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 억세스 바이올레이션 오류인데 원인이 다양합니다.

    보통 이런경우 윈도우쪽 디버거를 활용하여 원인을 찾습니다.

    dll쪽 소스가 있으면 vc를 이용해서 디버깅이 가능하고 없다면 windbg, ollydbg등의 바이너리 디버거로 디버깅을 해보면 됩니다.

    잘 안되시면 작업한 dll 과 작업한 소스를 제 메일(allinux36@gmail.com)로 보내주세요.

    • 현재 dll 소스파일이 있어 visual studio에서 dll 파일을 생성하였습니다. 디버깅 당시 에러사항은 없었으며 java쪽에 연동하여 사용할시에만 에러가 생깁니다. 이럴 경우 어떤 부분이 원인이 될까요? 알 수 없는 사용자 2017.10.20 12:19
    • 원인을 알기위해 자바에서 dll 호출시를 디버깅을 진행해봐야 합니다. 원인이 억세스 바이올레이션입니다. 널 객체에 참조했거나 했을겁니다. 정영훈 2017.10.20 13:02

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)