[原]JNI简单示例

xiaoxiao2024-10-26  14

[标题]:JNI简单示例 [时间]:2009-4-5 [摘要]:Java通过JNI调用DLL。 [关键字]:JNI,DLL,动态库,Java [环境]:JDK6 + VC6 [作者]:Winty (wintys@gmail.com) [正文]:     Java通过JNI调用本地系统的动态库(Windows上是dll形式,Unix中是so形式的文件)。JNI的简单步骤如下:     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"。运行后会弹出一个对话框。
转载请注明原文地址: https://www.6miu.com/read-5018601.html

最新回复(0)