通过JNI调用一个库文件(.dll),这个dll中包含一个实现清屏功能(system("cls"))的导出函数.在java程序中加入代码调用这个库,即可实现当前屏幕的清屏.(--JNI的使用,以及dll的制作在百度随便搜索即可找到,这里请恕不多谈^_^--)
实现步骤:
①写一个dll.h
#ifndef _Included_Cls
#define _Included_Cls
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_Cls_clear
(JNIEnv *, jobject);
}
#include "jni.h"
#include "dll.h"
#include "stdlib.h"
JNIEXPORT void JNICALL Java_Cls_clear(JNIEnv *env, jobject obj)
system("cls");
然后build 这个dll工程,将生成的clsTest.dll放入到你的java.library.path中的其中一个目录下
查看java.libray.path用代码System.out.print(System.setProperty("java.library.path","."));
新建一个测试类Test.java
public class Test{
public native void clear();//左方的native是通知Java这个函数会使用到外部函数
static {
System.loadLibrary("clsTest"); //左方的代码代表我要载入clsTest.dll的动态链接
public static void main(String[] args) {
final Test a=new Test();
Runnable k=new Runnable(){
public void run(){
System.out.println(i);
try {
Thread.sleep(1000);
a.clear();
} catch (Exception e) {
};
k.run();//执行线程
java Test
即可看到运行效果^_^~
注:该解决方案只解决控制台程序的刷屏,且必须是系统控制台,而eclipse等其它IDE的控制台是无法用这种方式进行清屏的,如果要实现,必须使用入侵IDE的进程,因为在eclipse的内置控制台右击邮件有个clear功能,实际上就是个setText(null)事件,入侵IDE就是要在外部制造这个事件,其它IDE要也差不多.
同样,java的这种刷屏解决方案也适用于linux,不同是其链接库文件是.so,都说到这里了大家应该明白原理是差不多的.
Java可以通过代码来对console控制台进行清屏:Runtime.getInstance().exec("cls");
输出几十行换行......
输出适量的退格符'\b',然后重新输出要输出的东西,这样可以把原来的覆盖.如果只是要清屏,不要重新输出,就退格后输出适量空格' '来覆盖原来的输出.
要java在windows下的cmd下实现清屏,唯一的方案,就是通过JNI调用一个库文件(.dll),这个dll中包含一个实现清屏功能(system("cls"))的导出函数.
在java程序中加入代码调用这个库,即可实现当前屏幕的清屏.
java没有清空的方法.
可以使用替代的方法:通过输出空行,达到清屏.例如:
其实输出的是你自己想看的,不想输出就不会显示.
如果你想把已经输出的控制台让他空掉的话,随便写个类里面输出System.out.print("");
不过这样是多此一举,因为你下面要进行其他代码的调试编译时是不会受到之前的消息的影响的
①写一个dll.h#ifndef _Included_Cls
#ifdef __cplusplus extern "C"
#endif JNIEXPORT void JNICALL Java_Cls_clear
#ifdef __cplusplus }
System.loadLibrary("clsTest"); //左方的代码代表我要载入clsTest.dll的动态链接}
以上就是土嘎嘎小编为大家整理的java的清屏代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!