4个回答
展开全部
要java在windows下的cmd下实现清屏,唯一的方案,就是通过JNI调用一个库文件(.dll)裤芹,这个袜迅dll中包含一个实现清屏功能(system(告纯此“cls”))的导出函数。
在java程序中加入代码调用这个库,即可实现当前屏幕的清屏。
实现步骤:
1.写一个dll.h
#ifndef _Included_Cls
#define _Included_Cls
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_Cls_clear
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
2.再写一个dllmain.c
#include "jni.h"
#include "dll.h"
#include "stdlib.h"
JNIEXPORT void JNICALL Java_Cls_clear(JNIEnv *env, jobject obj)
{
system("cls");
}
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 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(){
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程序中加入代码调用这个库,即可实现当前屏幕的清屏。
实现步骤:
1.写一个dll.h
#ifndef _Included_Cls
#define _Included_Cls
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_Cls_clear
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
2.再写一个dllmain.c
#include "jni.h"
#include "dll.h"
#include "stdlib.h"
JNIEXPORT void JNICALL Java_Cls_clear(JNIEnv *env, jobject obj)
{
system("cls");
}
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 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(){
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
展开全部
//该颤早方法只在CMD窗口下有效
public class ControlWindowsConsole {
// 参数一 "/k"保留窗口"/c"关闭窗口
// 参数二 "cls"或者其他命令
public static void console(String state, String con) {
try {
宏洞态 new ProcessBuilder("cmd", state, con).inheritIO().start().waitFor();
} catch (Exception exception) {
蔽源 System.out.println("出错了!");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用System.out.println("\亩余耐n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\毁颤n\n\n\n\迅春n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
就可以了,保证没任何副作用!
就可以了,保证没任何副作用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用System.out.println("\亩余耐n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\毁颤n\n\n\n\迅春n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
就可以了,保证没任何副作用!
就可以了,保证没任何副作用!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询