参考
http://java.sun.com/docs/books/jni/html/start.html#769
创建一个文件夹
用于存放源码和输出文件
创建编译Java
1、用记事本创建java源码如下(一开始不要用eclipse)
class HelloWorld {
private native void print();
public static void main(String[] args) {
new HelloWorld().print();
}
static {
System.loadLibrary("HelloWorld");
}
}
2、保存为HelloWorld.java
3、编译之
产生class文件
生成头文件
执行javah命令
生成了头文件
制作DLL
1、用VS创建一个Win32的DLL工程
2、把前一步生成的HelloWorld.h加入工程(最好是拷贝到DLL所在工程,否则还要加附加头文件路径)
3、设定附加头文件路径
4、实现Native方法
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
5、编译
运行
1、把DLL拷贝到system32下(需要把JNINative.dll改名为HelloWorld.dll,才能被该Java调用。这点是例子不严谨)
2、在class所在目录下,用java HelloWorld运行
遗留问题
1、如何允许DLL在任意目录下
2、如果Java类在包中,如何编译运行通过(实际操作中,在eclipse中没问题,在命令行有错)