JNI Java 向C傳送字符串嘗試-附代碼

代碼是網上帖子找的,感覺比其他簡單易懂,借鑑一下。

Java代碼

  1. public class Sample1{ 
  2.     public native String stringMethod(String text); 
  3.  
  4.     public static void main(String[] args) 
  5.     { 
  6.         System.loadLibrary("Sample1"); 
  7.         Sample1 sample = new Sample1(); 
  8.         String text = sample.stringMethod("Thinking"); 
  9.         System.out.println("stringMethod:"+text); 
  10.     } 

 

 

C代碼

  1. #include <D:\Java\Sample1.h> 
  2. #include<string.h> 
  3. #include <ctype.h> 
  4.  
  5. JNIEXPORT jstring JNICALL Java_Sample1_stringMethod (JNIEnv *env, jobject obj, 
  6. jstring string){ 
  7.     int i; 
  8.     const char *str = (*env)->GetStringUTFChars(env,string,0); 
  9.     char cap[128]; 
  10.     strcpy(cap,str); 
  11.     (*env)->ReleaseStringUTFChars(env,string,str); 
  12.     for(i= 0; i<strlen(cap); i++){ 
  13.         *(cap+i)=(char)toupper(*(cap+i)); 
  14.     } 
  15.     return (*env)->NewStringUTF(env,cap); 

 

Java代碼在:D:\Java\

C工程:Sample1

編譯方法見:http://425093014.blog.51cto.com/5109559/1181233

Release後把Sample1.dll放入JDK的bin目錄下,如:C:\Program Files\Java\jdk1.7.0_15\bin

cmd進入D:\Java\,使用命令java Sample1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章