现在的位置: 首页 > 综合 > 正文

Windows平台下JNI简单示例

2018年04月10日 ⁄ 综合 ⁄ 共 739字 ⁄ 字号 评论关闭

参考
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中没问题,在命令行有错)

【上篇】
【下篇】

抱歉!评论已关闭.