jbyteArray bytes = 0;
    int len = strlen(str);
    bytes = (*env)->NewByteArray(env, len);
    if (bytes != NULL) {
        (*env)->SetByteArrayRegion(env, bytes, 0, len,
                                   (jbyte *)str);
    }

解决方案 »

  1.   

    sorry,最上边漏了一行str应该是char*类型
      

  2.   

    老兄再次多谢指教我现在已经发现(jbyteArray jarray)这个值在函数后SetByteArrayRegion已经更更改了值但是现在又出现了一个问题,
    我在JAVA里却怎么也取不出这个值而且我还要把它转成string型,
    但却总有问题请问这该如何啊。。
      

  3.   

    参考:
    http://www.csdn.net/expert/topic/1058/1058091.xml?temp=.2532007
    http://www.csdn.net/expert/topic/1057/1057747.xml?temp=.1172602参考源代码:
    http://www.hugkc.org/sigs/c/files/jniexamples.zipjniexamples.zip中chap8例子中NativeString.c里面的
    char *JNU_GetStringNativeChars(JNIEnv *env, jstring jstr)
    方法,它的作用就是将jstring类型转化为char*,其实知道了很简单,就是先在C语言中调用java的String类型的getBytes方法,将java字符串对象转化为java的byte数组,然后再调用JNI函数GetByteArrayRegion将这个byte数组转化为C语言的char数组。
    在刚学习JNI的时候,因为JNI的文档不够详细,如果没有人指导的话,在这个地方理解失误在所难免,我当时也是走了好多弯路才弄明白怎么回事的,jniexamples.zip里面的例子不错,好像是某一本书的实例代码,我认为是JNI入门的好东东,我极力向大家推荐!!================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]