你是想说用JNI吧?JNDI跟JNI可不是一个东西啊
JNI(JAVA NATIVE INTERFACE,JAVA本地接口)
是JAVA在特殊情况下,(如强调效率或与平台
有关的功能)必须调用本地方法时的接口规则。
下面是一个无限简单的样例:
程序功能:用JAVA调用本地用VC写的一个函数,
该函数输入一个整数,输出整数的平方加3。
1、首先,建立自己的JAVA主程序jnitest.java
jnitest.java :
import java.lang.*;
public class jnitest {
public static void main(String args[]) {
jnitest Mytest = new jnitest();
int a = 4;
int b = Mytest.Cal(a);
System.out.println("The result is : "+b);
}
public native int Cal(int i) ;
static {
System.loadLibrary("MyCal");
// MyCal 是本地方法的动态链接库的名称
}
}
2、然后javac jnitest.java ,生成.CLASS文件。
3、然后javah -jni jnitest , 生成jnitest.h。
编辑jnitest.h ,找到JAVA定义的本地方法的原型:
JNIEXPORT jint JNICALL Java_jnitest_Cal
(JNIEnv *, jobject, jint)
4、根据函数原形,编写C函数如下:
#include "jni.h"
#include "jnitest.h"
JNIEXPORT jint JNICALL Java_jnitest_Cal
(JNIEnv *env, jobject obj, jint a)
{
return ( a * a + 3) ;
}
注意必须INCLUDE 生成的jnitest.h和JAVA自带的jni.h
用VC编译之,生成MyCal.dll。
5、将MyCal.dll拷贝到jnitest所在目录,运行 :
java jnitest
结果为:The result is :19
OK !!!