JNI中 Java 中字符串 转换成C中的字符数组方法
2015-08-02 15:08
477 查看
char* Jstring2CStr(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/lang/String"); jstring strencode = (*env)->NewStringUTF(env,"GB2312"); jmethodID mid = (*env)->GetMethodID(env,clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)(*env)->CallObjectMethod(env,jstr,mid,strencode); // String .getByte("GB2312"); jsize alen = (*env)->GetArrayLength(env,barr); jbyte* ba = (*env)->GetByteArrayElements(env,barr,JNI_FALSE); if(alen > 0) { rtn = (char*)malloc(alen+1); //"\0" memcpy(rtn,ba,alen); rtn[alen]=0; } (*env)->ReleaseByteArrayElements(env,barr,ba,0); // return rtn; }
相关文章推荐
- spring配置文件详解
- Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)
- Java:注解(Annotation)自定义注解入门
- @interface java注解
- java 自动拆箱的陷阱
- JDK环境配置
- java编程的一些建议
- Exception in thread "main" java.lang.UnsupportedClassVersionError
- 用 Spring Security 4+Spring MVC+Spring4 构建健壮且安全的web应用
- Java Metrics
- 菜鸟学Struts——I18N对国际化的支持
- Oauth2.0 用Spring-security-oauth2 非常简单
- Reflections让Java的反射更得简单
- 定制Eclipse IDE之杂症篇
- java设计原则
- java入门基础笔记
- 在eclipse中安装activiti插件
- Spring AOP 详解
- springMVC配置静态资源访问的<mvc:resources>标签的使用
- Java基础-封装