<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
    新建立ArrayHandler.java
    package com.user;
    public class ArrayHandler {
         private String arrayResults[];
         int arraySize = -1;
         public native void returnArray();
         static {
             System.loadLibrary("nativelib");
         }
         public void sendArrayResults(String results[]) {
             arraySize = results.length;
             arrayResults = new String[arraySize];
             System.arraycopy(results, 0, arrayResults, 0, arraySize);
         }
         public void displayArray() {
             for (int i = 0; i < arraySize; i++) {
                 System.out.println("array element " + i + "= " + arrayResults
    );
             }
         }
         public static void main(String args[]) {
             String ar[];
             ArrayHandler ah = new ArrayHandler();
             ah.returnArray();
             ah.displayArray();
         }
    }
       
    Windows
    ( 1 ).Javc ArarayHandler.java
    在當前目錄下建立com目錄,在com中建立user目錄,把ArrayHandler.class拷貝到user目錄下
    ( 2 )javah –jni com.user.ArrayHandler
    產生com_user_ArrayHander.h文件
    ( 3 )建立一個dll項目 nativelib
    新建一個com_user_ArrayHandler.cpp
    #include <jni.h>
    #include <iostream.h>
    #include "com_user_ArrayHandler.h"
    JNIEXPORT void JNICALL Java_com_user_ArrayHandler_returnArray
    (JNIEnv *env, jobject jobj){
    jobjectArray ret;      //定義一個數組類型的對象
    int i;
    jclass cls;
    jmethodID mid;
    char *message[5]= {"first", "second", "third",      "fourth", "fifth"};
    ret=(jobjectArray)env->NewObjectArray(5,
          env->FindClass("java/lang/String"),
          env->NewStringUTF(""));
    for(i=0;i<5;i++) {
        env->SetObjectArrayElement(ret,i,env->NewStringUTF(message
    ));
    }
    cls=env->GetObjectClass(jobj);//得到jobj類的對象
    //mid為ArrayHandler中的sendArrayResluts()方法
    mid=env->GetMethodID(cls, "sendArrayResults",      "([Ljava/lang/String;)V");
    if (mid == 0) {
        cout <<"Can't find method sendArrayResults";
        return;
    }    
    env->ExceptionClear();//清空異常信息
    env->CallVoidMethod(jobj, mid, ret);//調用方法sendArrayResluts()
    if(env->ExceptionOccurred()) {
        cout << "error occured copying array back" <<endl;
        env->ExceptionDescribe();
        env->ExceptionClear();
    }
    return;
    }
    我用的是Dev-c++
    建立一個dll項目,產生2個文件保存就可以了
    把項目的include路徑 增加 本地jdk的include 目錄和 include/win32路徑
    builder All
    產生nativelib.dll文件
    java com.user.ArrayHandler
    結果:
    array element 0= first
    array element 1= second
    array element 2= third
    array element 3= fourth
    array element 4= fifth
    Linux
    拷貝ArrayHandler.java; com_user_ArrayHandler.cpp到某個目錄下
    (1)      javac ArrayHandler.java
    (2)      mkdir com
    (3)      cd com
    (4)      mkdir user
    (5)      cd ..
    (6)      cd ..
    (7)      回到 ArrayHandler.java目錄
    (8)      cp ArrayHandler.class com/user/
    (9)      javah -classpath=. -jni com/user/ArrayHandler
    (10)      g++ -o libnativelib.so -shared -I$JAVAHOME/include -I$JAVAHOME/include/linux com_user_ArrayHandler.cpp
    (11)      java -Djava.library.path=. com/user/ArrayHandler
    (12)      結果同Windows


    </script>

    posted on 2007-08-13 18:50 helloworld2008 閱讀(317) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 视频免费1区二区三区| 亚洲av午夜精品无码专区| 免费人妻精品一区二区三区| 久久亚洲精品中文字幕无码| 国产免费福利体检区久久| AV在线亚洲男人的天堂 | 国产视频精品免费| 亚洲国产高清国产拍精品| 成人永久福利免费观看| 国产精品日本亚洲777| 亚洲av再在线观看| 一个人晚上在线观看的免费视频| 亚洲国产精品无码久久久久久曰| 一级中文字幕免费乱码专区| 国产精品亚洲不卡一区二区三区| 99久久免费国产特黄| 成人a免费α片在线视频网站| 久久久久亚洲AV综合波多野结衣| 亚洲熟女www一区二区三区| 日韩免费电影在线观看| 真人无码作爱免费视频| 国产成人A亚洲精V品无码| 免费人成黄页在线观看日本| 亚洲制服丝袜在线播放| 国产99视频精品免费专区| 免费v片在线观看品善网| 九九九精品视频免费| 亚洲高清无在码在线电影不卡| 少妇亚洲免费精品| 亚洲爆乳无码专区| 国产一精品一AV一免费孕妇| 精品成人一区二区三区免费视频| 亚洲精品高清国产一线久久| 亚洲视频在线免费看| 亚洲AV成人无码天堂| 手机看片国产免费永久| 亚洲精品亚洲人成在线观看下载| 亚洲国产V高清在线观看| 精品国产亚洲AV麻豆| 精品国产亚洲男女在线线电影| 成人免费无码H在线观看不卡|