1.在Java中定义构造函数(无参的不写没事,不被覆盖就行)并获取
public native Object accessConstaructor();
2.javah生成头文件
JNIEXPORT jobject JNICALL Java_com_boom_JNITest_accessConstaructor
(JNIEnv * env, jobject jobj)
3.源代码中进行具体实现
//访问构造方法
//使用java.util.Date产生一个当前的时间戳
JNIEXPORT jobject JNICALL Java_com_boom_JNITest_accessConstaructor
(JNIEnv * env, jobject jobj){
//jclass
jclass cls = (*env)->FindClass(env,"java/util/Date");
//jmethodID
jmethodID constaructor_mid = (*env)->GetMethodID(env,cls,"<init>","()V");
//实例一个Date对象
jobject date_obj = (*env)->NewObject(env,cls,constaructor_mid);
//调用getTime方法
jmethodID mid = (*env)->GetObjectClass(env,date_obj);
jlong time = (*env)->CallLongMethod(env,date_obj,mid);
printf("\ntime:%lld\n",time);
return date_obj;
}
3.源代码中进行具体实现