2013-05-21 25 views
0

我有以下代碼。 LINUX中編譯這段代碼的命令是什麼? gcc ThisFile.C說JNI_VERSION_1_6未申報。如何編譯JNI_CreateJavaVM

#include <stdio.h> 
#include <jni.h> 
#include <string.h> 

JNIEnv* create_vm(JavaVM ** jvm) { 

    JNIEnv *env; 
    JavaVMInitArgs vm_args; 
    JavaVMOption options; 

    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; 
} 


int main(int argc, char* argv[]) 
{ 
    JNIEnv *env; 
    JavaVM * jvm; 

    return 1; 
} 
+0

如果沒有抱怨缺少'jni.h',請查看該文件,該文件支持'JNI_VERSION_xxx'。 –

回答

1

好吧,我自己回答。希望這會幫助別人

回聲$ JAVA_HOME /usr/lib/jvm/java-1.6.0 的gcc -o調用-I $ JAVA_HOME /包括/ -I $ JAVA_HOME /在include/linux -L $ JAVA_HOME/jre/lib/amd64/server/-ljvm call.c