JAVA 控制台清屏 2
来源:互联网 发布:买一个淘宝店铺多少钱 编辑:程序博客网 时间:2024/05/06 18:58
最近写了个java的定时器程序,因为在C/C++中有system("cls")可以进行清屏,然而在java中却从来没发现过相关功能的方法,在网上搜了很久也没找到成功的解决方案,所有的方案都是带有喜剧性的, 1.Runtime.getRuntime().exec("cmd /c cls");但这种是建立子线程,不能控制当前屏幕的清屏, 2.就更搞笑了,System.out.println("/n /n /n /n /n /n /n /n /n /n /n /n /n /n /n /n");当然这种方法在某些情况下达到了目的,不过总觉得怪怪的,有点不尽人意3.System.out.println(" /b /b /b /b /b /b /b /b /b /b /b");这个就更搞笑了,呵呵,大家说呢; 所以我自己思考了一个方案: 要java在windows下的cmd下实现清屏,我想了个方案,就是通过JNI调用一个库文件(.dll),这个dll中包含一个实现清屏功能(system(“cls”))的导出函数。在java程序中加入代码调用这个库,即可实现当前屏幕的清屏。(--JNI的使用,以及dll的制作在百度随便搜索即可找到,这里请恕不多谈^_^--) 实现步骤: 1.写一个dll.h #ifndef _Included_Cls 2.再写一个dllmain.c #include "jni.h" 3.用vc++建立一个dll工程(我的工程名为clsTest) 导入dllmain.c 和dll.h以及jdk下include目录下的jni.h和include/win32下的jni_md.h 共四个文件 然后build 这个dll工程,将生成的clsTest.dll放入到你的java.library.path中的其中一个目录下 查看java.libray.path用代码System.out.print(System.setProperty("java.library.path",".")); 我是根据我的配置将clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下 4.测试 新建一个测试类Test.java public class Test{ } public static void main(String[] args) { Runnable k=new Runnable(){ } java Test 即可看到运行效果^_^~ 注:该解决方案只解决控制台程序的刷屏,且必须是系统控制台,而eclipse等其它IDE的控制台是无法用这种方式进行清屏的,如果要实现,必须使用入侵IDE的进程,因为在eclipse的内置控制台右击邮件有个clear功能,实际上就是个setText(null)事件,入侵IDE就是要在外部制造这个事件,其它IDE要也差不多。 同样,java的这种刷屏解决方案也适用于linux,不同是其链接库文件是.so,总之原理是差不多的。
#define _Included_Cls
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_Cls_clear
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
#include "dll.h"
#include "stdlib.h"
JNIEXPORT void JNICALL Java_Cls_clear(JNIEnv *env, jobject obj)
{
system("cls");
}
public native void clear();//左方的native是通知Java這個函数会使用到外部函数
static {
System.loadLibrary("clsTest"); //左方的代码代表我要载入clsTest.dll的动态链接
final Test a=new Test();
public void run(){
for(int i=0;i<20;i++){
System.out.println(i);
try {
Thread.sleep(1000);
a.clear();
} catch (Exception e) {
}
}
};
k.run();//执行线程
}
}
5.在cmd下 javac Test.java
- JAVA 控制台清屏 2
- java控制台的清屏
- Java控制台清屏
- JAVA 控制台清屏
- C#控制台 控制台清屏
- 控制台界面控制(二):清屏
- Eclipse控制台实现清屏的方法
- Java 清屏 DOS界面
- Java实现命令行清屏功能
- java控制台万年历2
- VC++6.0在控制台程序使用清屏函数
- 终端/控制台设置颜色字体、光标定位和清屏
- python控制台实现tab补全和清屏
- C语言基础 将控制台上面输出的内容清屏
- VC下控制台中的光标定位和清屏
- Java如何在Cmd实现清屏功能
- JAVA控制台
- 2 curses库IO处理--清屏函数
- JS删除数组指定对象或者指定下标 删除数组重复值
- Android checkbox的listview开发实例
- WinCE设备仿真器+虚拟串口+GPS模拟器搭建开发测试环境
- JAVA 控制台清屏
- myeclipse8.5的svn的插件配置
- JAVA 控制台清屏 2
- 今天好好放松了下
- [Android]网络资源下载时断点续传的实现
- 核心与扩展
- java调用动态链接库(dll)
- 学习vi编辑器 —— 基本编辑命令的扩展
- 头疼的事
- Android源码目录结构
- 小布老师Oracle 9i DBA Fundamentals I 视频讲座 29