저는 C++을 기본 언어로 사용하고 있습니다. (C++) 공유 라이브러리를 만들 수 있으며 다음과 함께 Java 함수를 호출 할 수 있습니다. 공유 라이브러리의 도움. 내 과정에 참여다중 스레드 환경에서 JNI_CreateJavaVm을 사용하는 방법 (C++)
단계 :
1) JNI_CreateJavaVM는을 사용하여 VM을 생성 생성 된 VM에
2) 프로세스 [C++ IN]..
스레드
3) 출구 I가 확인 그 때는 다시는)이 JNI_CreateJavaVM는 모든 VM이 생성되지 않고, -1 (알 에러 등 JNI 에러 코드를 반환하는 동일한 프로세스를 수행한다면 getCreatedJavaVMs는 GetEnv를 사용하여 env를 얻으려고 시도하는 동안 0을 반환하는 값을 반환합니다.
는 또한 기능 GetJavaVM을 시도했지만이
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00c1b3ed, pid=8645, tid=2961177456
#
# JRE version: 7.0_25-b15
# Java VM: Java HotSpot(TM) Server VM (23.25-b01 mixed mode linux-x86)
# Problematic frame:
# C [libVsphere.so+0x6a3ed] _Jv_JNIEnv::GetJavaVM(_Jv_JavaVM**)+0xb
이 왜 발생하고 어떻게 문제를 해결하는 것입니다, 오류 메시지와 함께 추락지고?
다중 스레드 환경에서 JNI_CreateJavaVm, JNI_GetCreatedVMs 및 GetJavaVM을 사용하는 방법.