2013-09-24 64 views
0

我有这样一个unresolved external symbol [email protected] referenced我在哪里可以找到jni.lib

了同样的问题,但在$ JAVA_HOME \ lib中周围没有jni.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++源代码添加到问题中。我正试图从C++调用Java函数。 – ridox

+0

是的,但是你的JNI库从哪里来?你有一个jni.h文件夹吗?那个是从哪里来的。从那里开始,看看../lib。 –

回答

0

尝试jvm.dll。该文件可能位于​​或$JAVA_HOME/bin/server。 找到它并在您的LIBRARY附加包含路径。

+0

好了,我改变了加载jvm.dll的方式。通过调用像这样的函数'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

相关问题