我使用C++作爲我的本地工作。我能夠創建(C++)共享庫,並且能夠調用java函數共享庫的幫助。如何在多線程環境中使用JNI_CreateJavaVm(C++)
步驟涉及我的過程:
1)通過使用JNI_CreateJavaVm創建VM [IN C++]與所創建的VM
2)過程。
3)如果我將再次做同樣的過程中JNI_CreateJavaVm也沒有創造任何虛擬機,它返回的JNI錯誤代碼爲-1(未知的錯誤)。然後我檢查了從Thread
退出getCreatedJavaVMs返回返回0,而我試圖讓GetEnv env它崩潰。
我也試過功能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。