在java程序中加入代碼調(diào)用這個(gè)庫(kù),即可實(shí)現(xiàn)當(dāng)前屏幕的清屏。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)定西,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
實(shí)現(xiàn)步驟:
1.寫一個(gè)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.再寫一個(gè)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++建立一個(gè)dll工程(我的工程名為clsTest)
導(dǎo)入dllmain.c 和dll.h以及jdk下include目錄下的jni.h和include/win32下的jni_md.h 共四個(gè)文件
然后build 這個(gè)dll工程,將生成的clsTest.dll放入到你的java.library.path中的其中一個(gè)目錄下
查看java.libray.path用代碼System.out.print(System.setProperty("java.library.path","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測(cè)試
新建一個(gè)測(cè)試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個(gè)函數(shù)會(huì)使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動(dòng)態(tài)鏈接}
public static void main(String[] args) {
final Test a=new Test();
Runnable k=new Runnable(){
public void run(){
for(int i=0;i20;i++){
System.out.println(i);
try {
Thread.sleep(1000);
a.clear();
} catch (Exception e) {
}
}
}
};
k.run();//執(zhí)行線程
}
}
5.在cmd下 javac Test.java
java沒(méi)有清空的方法。
可以使用替代的方法:通過(guò)輸出空行,達(dá)到清屏。例如:
for(int i=0;i400;i++){
System.out.println("");//輸出400行空行
}
其實(shí)輸出的是你自己想看的,不想輸出就不會(huì)顯示。
如果你想把已經(jīng)輸出的控制臺(tái)讓他空掉的話,隨便寫個(gè)類里面輸出System.out.print("");
不過(guò)這樣是多此一舉,因?yàn)槟阆旅嬉M(jìn)行其他代碼的調(diào)試編譯時(shí)是不會(huì)受到之前的消息的影響的
通過(guò)JNI調(diào)用一個(gè)庫(kù)文件(.dll),這個(gè)dll中包含一個(gè)實(shí)現(xiàn)清屏功能(system(“cls”))的導(dǎo)出函數(shù)。在java程序中加入代碼調(diào)用這個(gè)庫(kù),即可實(shí)現(xiàn)當(dāng)前屏幕的清屏。(--JNI的使用,以及dll的制作在百度隨便搜索即可找到,這里請(qǐng)恕不多談^_^--)
實(shí)現(xiàn)步驟:
1.寫一個(gè)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.再寫一個(gè)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++建立一個(gè)dll工程(我的工程名為clsTest)
導(dǎo)入dllmain.c 和dll.h以及jdk下include目錄下的jni.h和include/win32下的jni_md.h 共四個(gè)文件
然后build 這個(gè)dll工程,將生成的clsTest.dll放入到你的java.library.path中的其中一個(gè)目錄下
查看java.libray.path用代碼System.out.print(System.setProperty("java.library.path","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測(cè)試
新建一個(gè)測(cè)試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個(gè)函數(shù)會(huì)使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動(dòng)態(tài)鏈接
}
public static void main(String[] args) {
final Test a=new Test();
Runnable k=new Runnable(){
public void run(){
for(int i=0;i20;i++){
System.out.println(i);
try {
Thread.sleep(1000);
a.clear();
} catch (Exception e) {
}
}
}
};
k.run();//執(zhí)行線程
}
}
5.在cmd下 javac Test.java
java Test
即可看到運(yùn)行效果^_^~
注:該解決方案只解決控制臺(tái)程序的刷屏,且必須是系統(tǒng)控制臺(tái),而eclipse等其它IDE的控制臺(tái)是無(wú)法用這種方式進(jìn)行清屏的,如果要實(shí)現(xiàn),必須使用入侵IDE的進(jìn)程,因?yàn)樵趀clipse的內(nèi)置控制臺(tái)右擊郵件有個(gè)clear功能,實(shí)際上就是個(gè)setText(null)事件,入侵IDE就是要在外部制造這個(gè)事件,其它IDE要也差不多。
同樣,java的這種刷屏解決方案也適用于linux,不同是其鏈接庫(kù)文件是.so,總之原理是差不多的。
Java可以通過(guò)代碼來(lái)對(duì)console控制臺(tái)進(jìn)行清屏:Runtime.getInstance().exec("cls");
也可以通過(guò)右鍵點(diǎn)擊console,出現(xiàn)clear,點(diǎn)擊就可以清屏。
網(wǎng)站名稱:java中控制臺(tái)清屏代碼 java實(shí)現(xiàn)清屏
標(biāo)題網(wǎng)址:http://m.rwnh.cn/article42/hichec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制開發(fā)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站改版、定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)