廉頗老矣,尚能飯否

          java:從技術(shù)到管理

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          JNI簡(jiǎn)單示例【轉(zhuǎn)載】

          Java通過(guò)JNI調(diào)用本地系統(tǒng)的動(dòng)態(tài)庫(kù)(Windows上是dll形式,Unix中是so形式的文件)。
          Step1:編寫(xiě)Java類(lèi),其中包含要實(shí)現(xiàn)的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:編寫(xiě)相應(yīng)的實(shí)現(xiàn)文件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:運(yùn)行,命令:"java JNITest"。運(yùn)行后會(huì)彈出一個(gè)對(duì)話框

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

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

          主站蜘蛛池模板: 乐安县| 宁城县| 翁源县| 呼伦贝尔市| 汉寿县| 宜兰市| 东乡| 彰武县| 满城县| 东乌珠穆沁旗| 宁海县| 扎赉特旗| 津南区| 宽甸| 织金县| 崇左市| 仙桃市| 黄大仙区| 独山县| 华安县| 铜川市| 巴林左旗| 浪卡子县| 宿州市| 同仁县| 南京市| 双峰县| 五峰| 滦南县| 康平县| 洞口县| 桂东县| 甘洛县| 屯门区| 高台县| 敦煌市| 垣曲县| 无极县| 甘泉县| 安乡县| 灵璧县|