廉頗老矣,尚能飯否

          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 閱讀(209) 評論(0)  編輯  收藏 所屬分類: 程序人生

          主站蜘蛛池模板: 祁门县| 遂平县| 武夷山市| 兴仁县| 溧阳市| 桦甸市| 阜阳市| 龙川县| 石阡县| 辰溪县| 阳春市| 虎林市| 阜城县| 彝良县| 海口市| 白山市| 萨迦县| 淮北市| 收藏| 新田县| 双辽市| 新蔡县| 安多县| 顺平县| 绵竹市| 南部县| 若尔盖县| 阿克陶县| 华宁县| 普兰店市| 婺源县| 南部县| 象州县| 石首市| 名山县| 福鼎市| 安阳县| 图们市| 阳高县| 隆德县| 乐至县|