最佳答案
1. 编写范例文档 public class TestNative { private native static int Max(int a,int b); public static void main(String[] args) { System.out.println(Max(4,5)); } static { System.loadLibrary("VCdll"); } } 其中 LoadLibrary中的DLL文件名称可以随便定.只要做好的动态链接库改名成这个字符串就可以了.而native函数的来源就是该动态链接库. 2. 做好该步准备以后,用javac TestNative.java生成TestNative.class. 检验语法. 3. 语法检查通过以后,用javah TestNative生成TestNative.h的C++头文件. 4. 用VC++6.0创建dll文件: <1>msdev->new->project->win32 Dynamic-Link Library <2>Enter project name (e.g. VCdll) <3>choose "An empty DLL project"->finish <4>将3生成的TestNative.h和jdk下的jni.h和jni_md.h加入到工程中去 <5>Create a c++ file, implements the native method. as follows: //TestNative.cpp #include "TestNative.h" JNIEXPORT jint JNICALL Java_TestNative_Max (JNIEnv * a, jclass b, jint x, jint y) { return x > y ? x : y; } 备注: A 其中的jni.h通常在 jdk/include/ 可以先拷贝到VC安装目录下的include目录下.一劳永逸,以后可以方便使用JNI技术. B 全部的数据类型需要考虑Java和VC的接口问题.用jint jstring 等. C 函数名称和自动生成的.h文件中规定的一致.命名规则是: Java_使用类_方法名 6. 全编译一下VC++工程. 如果没有出错,则此时生成动态链接库成功. 把动态链接库VCdll.dll拷贝到TestNative.java所在的目录上. 7.运行java TestNative. OK :-)