黑马程序员技术交流社区
标题:
简单JNI调用
[打印本页]
作者:
qq491786119
时间:
2015-9-22 22:42
标题:
简单JNI调用
今天写代码想在程序中使用清屏函数(cls)在jdk里面找了半天只找到一个Runtime 但是他会额外开启一个线程 但不到预期
所以就想到了用JNI调用本地c方法就是 system()函数
在用时遇到了一些问题,总结一下交流
首先编写java代码
1.class JNIjava
{
static{
System.loadLibrary("JNIc");
}
public native void system();
public static void main(String[] args)throws Exception
{
System.out.println("hello java");
Thread.sleep(2000);
new JNIjava().system();
}
2.然后javac 编译
3.javah -jni JNIjava 得到c头文件
4.然后编写c代码
#include "jni.h"//这个必须包含
#include <windows.h>
#include "JNIjava.h"
JNIEXPORT void JNICALL
Java_JNIjava_system(JNIEnv *env,jobject obj){
system("cls");
}
编译生成dll 注意dll的位数必须和jdk位数一样 不然会报错
dll要放到class文件目录下 不然会提示找不到
最后 运行JNIjava即可
新手勿喷。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2