[英]trouble in calling java method from c++
我試圖從C ++代碼調用Java東西。我將JDK SE 7u25的include和lib路徑鏈接到我的visual studio 6.0(我只是在舊版本的MSVC中嘗試它)。
JNIEnv* create_vm(JavaVM ** jvm) {
JNIEnv *env;
JavaVMInitArgs vm_args;
JavaVMOption options;
options.optionString = "-Djava.class.path=C:\\Users\\myName\\Desktop\\Java Src\\TestStruct"; //Path to the java source code
vm_args.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6
vm_args.nOptions = 1;
vm_args.options = &options;
vm_args.ignoreUnrecognized = 0;
int ret = JNI_CreateJavaVM(jvm, (void**)&env, &vm_args);
if(ret < 0)
printf("\nUnable to Launch JVM\n");
return env; }
我得到以下錯誤...
C:\\ PROGRAM FILES \\ JAVA \\ JDK1.7.0_25 \\ LIB \\ jvm.lib:致命錯誤LNK1113:無效的機器類型
有什么問題嗎?..我猜JNI_VERSION_1_6可能有問題..? 因為我使用SE 1.7.0_25版本。 但我無法在jni.h文件中找到JNI_VERSION_1_7。
也許我必須卸載當前的jdk並安裝jdk SE 1.6版本?
謝謝您閱讀:)
也許您正在嘗試從32位程序鏈接x64版本的lib文件。 如果要編譯32位exe,請確保使用32位JDK。
或者,您可以使用“ LoadLibrary” +“ GetProcAddress”動態使用“ jvm.dll”來調用相應的JNI函數。 同樣,您需要注意32/64版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.