免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3445 | 回复: 3
打印 上一主题 下一主题

请教一个关于JNI参数传递的问题 [复制链接]

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-10-10 17:10 |只看该作者 |倒序浏览
最近在Linux上写了一个测试程序。
先是用pure Java——String stemp=new String("文件")&#59;
byte[] sarray=stemp.getBytes()&#59;
然后通过打印可以看见"文件"这个String在Java中的编码是CEC4,BCFE
然后我用C—— char stemp[10]&#59;
strcpy(stemp,"文件");
然后通过打印可以看见"文件"这个String在C中的编码也是CE,C4,BC,FE

但是我又写了一个JNI的小东西。Java的接口是一个native void test(String temp)&#59;
C的实现是:JNIEXPORT void JNICALL Java_t_test(JNIEnv *env,jstring temp)
{
……
    jboolean iscopy&#59;
    const char* str=(*env)->;GetStringUTFChars(env, temp, &iscopy)&#59;
……
}&#59;
结果发现:如果我用GetStringUTFChars()的时候,把"文件"传过去就成了E6,96,87,E4,BB,B6
改用GetStringChars()的时候,把"文件"传过去就成了87,65,F6,4E.
而如果不传中文,传ASCII字符的时候一切正常……
郁闷哪……这是怎么回事啊?谁能指点一下吗?

[ 本帖最后由 Eisen 于 2006-3-9 11:22 编辑 ]

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2002-10-11 20:05 |只看该作者

请教一个关于JNI参数传递的问题

问题已经解决——改用byte[] 作为参数传递就一切OK了。呵呵

论坛徽章:
0
3 [报告]
发表于 2002-12-20 11:14 |只看该作者

请教一个关于JNI参数传递的问题

如果使用byte[]来传,怎么在cpp中把jbyteArray转成char *


论坛徽章:
0
4 [报告]
发表于 2002-12-20 11:23 |只看该作者

请教一个关于JNI参数传递的问题

我在SCO OPENSERVER 上调用jni的,一样在java中传入string,在c中转换(*env)->;GetStringUTFChars(),只执行一句打印该字串,用完后释放(*env)->;ReleaseStringUTFChars().
似乎第一次调用起来了,有打印出字串,但立刻web服务就停止了,后台报错:线程空间被占满。此后重启web服务,能够调用到.so,但就再也无法打印,一直都报线程空间满。

我用的是jdk1.3.1,tomcat3.1,请问有什么高招吗?

此外,怎样设置web服务启动时占用的内存空间?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP