黑马程序员技术交流社区

标题: 简单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