廉頗老矣,尚能飯否

          java:從技術到管理

          常用鏈接

          統計

          最新評論

          JNI簡單示例【轉載】

          Java通過JNI調用本地系統的動態庫(Windows上是dll形式,Unix中是so形式的文件)。
          Step1:編寫Java類,其中包含要實現的native方法。
          JNITest.java:

          public class JNITest{
              static{
                  System.loadLibrary("JNITest");
              }

              public native void showMessageBox();

              public static void main(String[] args){
                  JNITest jni = new JNITest();
                  jni.showMessageBox();
              }
          }
              編譯JNITest.java,命令:"javac JNITest.java",生成JNITest.class。

              Step2:生成頭文件,命令:"javah JNITest",生成頭文件JNITest.h
          JNITest.h:

          /* DO NOT EDIT THIS FILE - it is machine generated */
          #include <jni.h>
          /* Header for class JNITest */

          #ifndef _Included_JNITest
          #define _Included_JNITest
          #ifdef __cplusplus
          extern "C" {
          #endif
          /*
           * Class:     JNITest
           * Method:    showMessageBox
           * Signature: ()V
           */
          JNIEXPORT void JNICALL Java_JNITest_showMessageBox
            (JNIEnv *, jobject);

          #ifdef __cplusplus
          }
          #endif
          #endif
              Step3:編寫相應的實現文件JNITest.cpp(或.c)。
          JNITest.cpp:

          #include "JNITest.h"
          #include <windows.h>

          JNIEXPORT void JNICALL Java_JNITest_showMessageBox
            (JNIEnv *, jobject){
              ::MessageBox(NULL,"This is a JNI test" , "JNI" , MB_OK);
          }
              Step4:將JNITest.cpp編譯成dll,
              命令(cl 是VC6的編譯命令):
          "cl -If:\jdk\include -If:\jdk\include\win32 -LD JNITest.cpp user32.lib -FeJNITest.dll"
              Step5:運行,命令:"java JNITest"。運行后會彈出一個對話框

          柳德才
          13691193654
          18942949207
          QQ:422157370
          liudecai_zan@126.com
          湖北-武漢-江夏-廟山

          posted on 2009-04-08 17:23 liudecai_zan@126.com 閱讀(213) 評論(0)  編輯  收藏 所屬分類: 程序人生

          主站蜘蛛池模板: 崇信县| 衡阳县| 舒城县| 遂宁市| 东莞市| 门源| 上饶县| 那坡县| 深水埗区| 竹溪县| 康定县| 大竹县| 榆社县| 张家川| 板桥市| 普格县| 凯里市| 日照市| 图们市| 平原县| 广德县| 龙江县| 鲜城| 祁东县| 阿拉善左旗| 平武县| 沙河市| 永善县| 石景山区| 大方县| 太保市| 黄梅县| 宣威市| 巴彦淖尔市| 水城县| 尼玛县| 股票| 景宁| 临海市| 浮山县| 兴安盟|