2014-08-28 54 views
0

所以我需要使用jni來調用java方法。 我開始使用此代碼:如何使用JNI在構建器C++應用程序中啓動JVM

JNIEnv *env1; 
JavaVM** jvm1; 
JavaVMInitArgs vm_args1; 
JavaVMOption options1[1]; 
options1[0].optionString = "-Djava.class.path=D:\\Java Src\\TestStruct"; //Path to the java source code 
vm_args1.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6 
vm_args1.nOptions = 1; 
vm_args1.options = options1; 
vm_args1.ignoreUnrecognized = 0; 

int reAt = JNI_CreateJavaVM(jvm1, (void**)&env1, &vm_args1); 
if(reAt < 0) 
    Label1->Caption = "failed"; 
else 
    Label1->Caption = "Success"; 

我轉換jvm.lib到OMF LIB在我的建設者C++應用程序的使用方法:

COFF2OMF jvm.lib jvm2.lib 

我加jvm2.lib到庫路徑還是傳統鏈接有關JNI_CreateJavaVM函數的錯誤。

現在我的應用程序編譯沒有錯誤。

但它調用JNI_CreateJavaVM函數時會崩潰。

我說靠近我的.exe

什麼是有步驟的PB中的jvm.dll?

如何修復它?

THX

+0

[使用JNI啓動JVM Builder C++]的可能重複(http://stackoverflow.com/questions/25550578/use-jni-to-start-jvm-builder-c) – Tracer 2014-08-31 12:02:26

回答

1

的第一個參數JNI_CreateJavaVM應該是一個有效的指針JavaVM*

JavaVM* jvm1; 
int reAt = JNI_CreateJavaVM(&jvm1, ...); 

在你的榜樣,jvm1未初始化。

有關詳細信息,請參閱the documentation

相關問題