<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      yanqy

      導航

       

      //1:編寫[CallC.java],用于生成C頭文件,C包含此頭文件編寫方法

       1 //CallC.java
       2     public class CallC
       3     {
       4         static
       5         {
       6             System.loadLibrary("useC");  //注冊庫文件名、C生成的庫文件在windows下為useC.dll linux下生成為libuseC.so
       7          }
       8         //聲明的本地方法,可以寫多個
       9         public  staitc native int useC(int flag,String path,String action);
      10            
      11     }


      //2:執行[javac CallC.java] ,生成CallC.class

      //3:執行[javah -classpath . CallC] 生成CallC.h ,制定classpath為當前路徑

      //4:編寫[CallC.cpp]  拷貝jin.h和jin_md.h到代碼目錄 修改CallC.h 里面頭文件, 如果系統有這些頭文件則不需處理

       1 //CallC.cpp
       2 #include "CallC.h"
       3 
       4 #include <stdio.h>
       5 #include <stdlib.h>
       6 
       7 JNIEXPORT jint JNICALL Java_CallC_useC
       8   (JNIEnv * env , jclass arg, jint jmethods , jstring jname, jstring jparam)
       9 {
      10     unsigned char *name = NULL;
      11     unsigned char *param = NULL;
      12     int methods = jmethods;
      13     char cmd_buf[256] = {0};\
      14     int nRet = 0 ;
      15     
      16     if(jparam)
      17     {
      18         name =  (unsigned char *)env->GetStringUTFChars( jname, JNI_FALSE );
      19     }
      20     if(jparam)
      21     {
      22         param = (unsigned char *)env->GetStringUTFChars( jparam, JNI_FALSE );
      23     }
      24     
      25      printf("name = %s\n",name); 
      26    printf("param = %s\n",param); 
      27    printf("methods = %d\n" , methods);
      28    
      29     
      30     
      31     switch(jmethods)
      32     {
      33         case 1:
      34             {
      35                 sprintf(cmd_buf,"%s %s" ,name ,  param);
      36                 printf("%s\n" , cmd_buf);
      37                 system(cmd_buf);
      38                 break;
      39             }
      40         default :
      41             {
      42                 nRet = 1;
      43                 break;
      44             }
      45     }
      46 
      47   
      48    
      49      // 通知虛擬機本地代碼不再需要通過 str 訪問 Java 字符串。
      50   env->ReleaseStringUTFChars( jname, (const char *)name ); 
      51   env->ReleaseStringUTFChars( jparam, (const char *)param );
      52     return 0;  
      53 
      54 }

       

      //5:執行[g++ -Wl,--kill-at -shared -fPIC -o  useC.dll CallC.cpp] 編譯代碼,生成useC.dll  

      //6:編寫[UseC.java]測試代碼

      1 public class UseC
      2 {
      3     public static void main(String argv[])
      4     {
      5           int result = CallC.useC(1 , "dir" , "/a:-d");    
      6           System.out.print(result);
      7     }
      8 }

      //7:執行[javac -cp . UseC.java]編譯java測試源碼  

      //8:執行[java -Djava_library.path=. -cp . UseC]運行java程序測試動態庫

      //參考資料 

      windows下安裝gcc編譯環境  http://tieba.baidu.com/p/2826016538

      linux下 java JNI調用C語言動態鏈接庫 - JonnyWei的專  http://blog.csdn.net/xiaojianpitt/article/details/5652223

      java.lang.UnsatisfiedLinkError解決方法匯集    http://blog.csdn.net/niuxinlong/article/details/4176612

      posted on 2014-08-08 16:36  yanqy  閱讀(439)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 日夜啪啪一区二区三区| 欧美疯狂xxxxbbbb喷潮| 日本熟妇XXXX潮喷视频| 亚洲综合精品一区二区三区| 国产久免费热视频在线观看| 亚洲综合无码一区二区| 2019国产精品青青草原| 91久久天天躁狠狠躁夜夜| 国产情侣激情在线对白| 欧美日韩在线视频| 中文字幕一区二区三区麻豆| 久久精品国产福利一区二区| 国产一区二区三区美女| 亚洲码国产精品高潮在线| 一区二区三区精品自拍视频| 天堂v亚洲国产v第一次| 亚洲精品成人福利网站| 日本丶国产丶欧美色综合| 国产网曝门亚洲综合在线| 阳原县| 亚洲日韩国产二区无码| 内射无套内射国产精品视频| 色噜噜一区二区三区| 日韩深夜福利视频在线观看 | 2020国产欧洲精品网站| 毛片无码免费无码播放| 久久99精品网久久| 精品偷拍一区二区三区| 精品 无码 国产观看| 国产视频最新| 91麻豆亚洲国产成人久久| 亚洲a免费| 亚洲精品尤物av在线网站| 日韩精品一区二区在线看| 亚洲国产成人久久77| 视频二区中文字幕在线| AV最新高清无码专区| 欧美熟妇性XXXX欧美熟人多毛| 丘北县| 四虎永久地址www成人| 成av人片一区二区久久|