一、cmd命令行下实现清贫
1、编写一个类ClearScreen.java,代码如下:
public class ClearScreen{
//实现清屏方法的接口
public native static void clearScreen();
//加载dll文件
{
System.loadLibrary("Clear");//Clear 生成dll的文件名
}
}
2、编译ClearScreen类
命令行环境下执行 javac ClearScreen.java -> ClearScreen.class
3、生成一个C的头文件,java里面提供一个工具javah
命令行环境下执行 javah ClearScreen -> ClearScreen.h
4、编写ClearScreen.cpp(c文件)实现native方法clearScreen(),代码如下:
#include <jni.h>
#include "ClearScreen.h"
#include <stdlib.h>
//这里两个ClearScreen 对应·······1步骤里的java类名和方法名
JNIEXPORT void JNICALL Java_ClearScreen_clearScreen(JNIEnv *, jclass){
system("cls");
}
5、安装一个microsoft compiler 编译ClearScreen.cpp,得到Clear.dll //我这里用到的是Microsoft Visual Studio
注意:将Jdk安装环境include目录下的jawt_md.h jni_md.h jni.h三个头文件copy到 Microsoft Visual Studio的 include目录下
6、调用
注意:将生成的dll文件与ClearScreen类放在同一文件夹
(new ClearScreen()).clearScreen();
二、Eclipse IDE控制台下实现清屏
在Eclipse控制台下通过右键清除是可以实现清屏的,同时发现该清屏操作所对应的快捷键是Ctrl+R。
于是我们产生这样的思路:在该要清屏的时候让程序的代码自动帮我们按下右键菜单并按下Ctrl+R键。
幸好,Java提供了一个用来产生本机输入事件的机器人类 :java.awt.Robot,这个类有一系列关于鼠标键盘的方法可以来调用。查了下这个类的一些方法,最终实现了上面所说的功能。
public static void clear() throws AWTException
{
Robot r = new Robot();
r.mousePress(InputEvent.BUTTON3_MASK); // 按下鼠标右键
r.mouseRelease(InputEvent.BUTTON3_MASK); // 释放鼠标右键
r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键
r.keyPress(KeyEvent.VK_R); // 按下R键
r.keyRelease(KeyEvent.VK_R); // 释放R键
r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键
r.delay(100);
}
于是,在该要清屏的时候调用该clear()函数即可!
版权声明:本文为博主原创文章,未经博主允许不得转载。