小编Oli*_*iff的帖子

C ++无法使用JNI在Java类中找到构造函数

通过以下代码,我可以调用静态方法(因此,我的类路径可能是正确的),但是JNI GetMethodID方法无法在同一类中找到构造函数:

java_test.cpp C ++ MWE:

#include <jni.h>
#include <cstring>

int main( void )
{
    JNIEnv * env;
    JavaVM * jvm;
    JavaVMOption options[1];
    JavaVMInitArgs vm_args;
    long status;

    options[0].optionString = (char*)"-Djava.class.path=/home/kadmin/workspace/kata/JavaTest/build/classes";
    memset( &vm_args, 0, sizeof( vm_args ) );
    vm_args.version = JNI_VERSION_1_2;
    vm_args.nOptions = 1;
    vm_args.options = options;
    status = JNI_CreateJavaVM( &jvm, (void**)&env, &vm_args );

    if ( status == JNI_ERR )
    {
        return 1;
    }

    /* Call static method to cube x */
    jclass cls = env->FindClass( "javatest/Sample" );
    jmethodID int_method_id = …
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface constructor

2
推荐指数
1
解决办法
1697
查看次数

标签 统计

c++ ×1

constructor ×1

java ×1

java-native-interface ×1