<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
    主站蜘蛛池模板: 亚洲AV无码成人网站久久精品大| 中文字幕亚洲无线码a| 亚洲日韩乱码中文无码蜜桃| 在线人成免费视频69国产| 亚洲开心婷婷中文字幕| 水蜜桃视频在线观看免费播放高清| 国产美女亚洲精品久久久综合| 在线免费视频你懂的| 亚洲国产另类久久久精品小说| 人人玩人人添人人澡免费| 亚洲国产成人一区二区精品区| 国产色无码精品视频免费| 亚洲男人天堂av| 国产成人精品免费视频动漫| 日韩亚洲国产综合高清| 暖暖免费高清日本中文| 一级毛片a免费播放王色电影 | 成年人网站在线免费观看| 亚洲乱色伦图片区小说| 免费a在线观看播放| 中文字幕在线免费看| 亚洲综合精品一二三区在线| 日韩免费精品视频| 色偷偷噜噜噜亚洲男人| 亚洲中文字幕在线乱码| 在线免费中文字幕| 亚洲爆乳大丰满无码专区 | 午夜亚洲AV日韩AV无码大全| 亚州免费一级毛片| 日韩亚洲人成在线综合| 亚洲国产婷婷六月丁香| 大学生一级毛片免费看| 一区二区三区免费在线观看| 亚洲天堂视频在线观看| 国产网站免费观看| 中文精品人人永久免费| 99热亚洲色精品国产88| 国产成人精品曰本亚洲79ren| 91免费国产精品| 黄色毛片免费在线观看| 亚洲网址在线观看|