jni中通过FindClass怎么找到一个类中定义的类?
java代码如下:
public class Hello {
private native int testCallSubClassMethod(); static{
System.loadLibrary("JavaTet");
}
public class arithmatic{
public int sub(int a, int b)
{
return a - b;
}
public int mul(int a, int b)
{
return a * b;
}
}
public static void main(String[] args){
Hello hl = new Hello();
hl.testCallSubClassMethod();
}
}我想调用arithmatic类中的sub方法
当使用jclass cls = (*env)->FindClass(env, "test/Hello/arithmatic");
总是查找类失败,那么描述符该怎么写?PS: "test"是包名,如果是jclass cls = (*env)->FindClass(env, "test/Hello");是可以成功找到的。
java代码如下:
public class Hello {
private native int testCallSubClassMethod(); static{
System.loadLibrary("JavaTet");
}
public class arithmatic{
public int sub(int a, int b)
{
return a - b;
}
public int mul(int a, int b)
{
return a * b;
}
}
public static void main(String[] args){
Hello hl = new Hello();
hl.testCallSubClassMethod();
}
}我想调用arithmatic类中的sub方法
当使用jclass cls = (*env)->FindClass(env, "test/Hello/arithmatic");
总是查找类失败,那么描述符该怎么写?PS: "test"是包名,如果是jclass cls = (*env)->FindClass(env, "test/Hello");是可以成功找到的。
现在我想调用调用类中类的函数sub,但是出错:mid = (*env)->GetMethodID(env, cls, "sub", "(II)I");
if (mid == NULL)
{
return -1;
}
ret = (*env)->CallIntMethod(env, obj, mid, 10, 4);错在(*env)->CallIntMethod(env, obj, mid, 10, 4);
应该是obj这个参数出错,我怎么样得到这个类中类的对象,然后调用这个函数。话说这个jni也真麻烦啊