今天写代码想在程序中使用清屏函数(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即可
新手勿喷。
|
|