通過JNI調(diào)用一個庫文件(.dll),這個dll中包含一個實現(xiàn)清屏功能(system(“cls”))的導(dǎo)出函數(shù)。在java程序中加入代碼調(diào)用這個庫,即可實現(xiàn)當(dāng)前屏幕的清屏。(--JNI的使用,以及dll的制作在百度隨便搜索即可找到,這里請恕不多談^_^--)
成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供四川聯(lián)通機房服務(wù)器托管 四川大帶寬租用 成都機柜租用 成都服務(wù)器租用。
實現(xiàn)步驟:
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)
導(dǎo)入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","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測試
新建一個測試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個函數(shù)會使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動態(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
即可看到運行效果^_^~
注:該解決方案只解決控制臺程序的刷屏,且必須是系統(tǒng)控制臺,而eclipse等其它IDE的控制臺是無法用這種方式進行清屏的,如果要實現(xiàn),必須使用入侵IDE的進程,因為在eclipse的內(nèi)置控制臺右擊郵件有個clear功能,實際上就是個setText(null)事件,入侵IDE就是要在外部制造這個事件,其它IDE要也差不多。
同樣,java的這種刷屏解決方案也適用于linux,不同是其鏈接庫文件是.so,總之原理是差不多的。
Java可以通過代碼來對console控制臺進行清屏:Runtime.getInstance().exec("cls");
也可以通過右鍵點擊console,出現(xiàn)clear,點擊就可以清屏。
要java在windows下的cmd下實現(xiàn)清屏,唯一的方案,就是通過JNI調(diào)用一個庫文件(.dll),這個dll中包含一個實現(xiàn)清屏功能(system(“cls”))的導(dǎo)出函數(shù)。
在java程序中加入代碼調(diào)用這個庫,即可實現(xiàn)當(dāng)前屏幕的清屏。
實現(xiàn)步驟:
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)
導(dǎo)入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","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測試
新建一個測試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個函數(shù)會使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動態(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
輸出幾十行換行……
輸出適量的退格符'\b',然后重新輸出要輸出的東西,這樣可以把原來的覆蓋。如果只是要清屏,不要重新輸出,就退格后輸出適量空格' '來覆蓋原來的輸出。
在java程序中加入代碼調(diào)用這個庫,即可實現(xiàn)當(dāng)前屏幕的清屏。
實現(xiàn)步驟:
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)
導(dǎo)入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","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測試
新建一個測試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個函數(shù)會使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動態(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中的清屏代碼,java清屏語句
網(wǎng)站URL:http://muchs.cn/article32/phiepc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序開發(fā)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)