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");是可以成功找到的。

解决方案 »

  1.   

    我看了一下test/Hello$arithmatic,是这样吧。
      

  2.   

    好像改成"test/Hello$arithmatic",你試試看行不行
      

  3.   

    刚刚试过,可以。
    现在我想调用调用类中类的函数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也真麻烦啊