2013-09-24 10 views
0

У меня такой же вопрос, как этот unresolved external symbol [email protected] referenced, где я могу найти jni.lib

но Нет jni.lib файл вокруг в $ JAVA_HOME \ Lib. И я не могу найти jni.lib где угодно, где я могу его найти?

#include <iostream> 
#include <jni.h> 
using std::cerr; 
int jvmtest(){ 
    JNIEnv *env; 
    JavaVM *jvm; 
    JavaVMInitArgs vm_args; 
    JavaVMOption options[1]; 
    options[0].optionString = 
     "-Djava.class.path=H:\\source"; 
    vm_args.version = JNI_VERSION_1_6; 
    vm_args.nOptions = 1; 
    vm_args.ignoreUnrecognized=0; 
    jint res = JNI_CreateJavaVM(&jvm,(void **)&env,&vm_args); 
    if(res <0) 
    {//do something 
    } 
    jvm->DestroyJavaVM(); 
    return 0; 
    } 

и в VS2010,

каталог библиотека C: \ JDK \ Lib; $ (LibraryPath)

включают путь C: \ JDK \ включать \ win32; C: \ jdk \ include; $ (IncludePath)

+0

Ну, откуда вы взяли свой JNI? –

+0

Я добавил свой исходный код на C++ к вопросу. Я пытаюсь вызвать функцию Java из C++. – ridox

+0

Да, но откуда взялась ваша библиотека JNI? У вас есть папка с jni.h? Откуда это пришло. Начните там и загляните в ../lib. –

ответ

0

Попробуйте jvm.dll. Этот файл может находиться в $JAVA_HOME/bin/client или $JAVA_HOME/bin/server. Найдите и добавьте содержащийся путь в ваш LIBRARY.

+0

ну, я меняю способ загрузки jvm.dll. вызывая funtion, как это: «HINSTANCE hVM = LoadLibrary (« C: \\ jdk \\ jre \\ bin \\ client \\ jvm.dll »);', ошибка связи исчезла. Ответ здесь [linke-error] (http://www.codeproject.com/Questions/263687/Linker-error-undefined-reference-to-_imp__JNI_Crea) – ridox

Смежные вопросы