通過(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)恕不多談^_^--)

創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶(hù)提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶(hù)提供了成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
實(shí)現(xiàn)步驟:
1.寫(xiě)一個(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.再寫(xiě)一個(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è)試類(lèi)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í)行線(xiàn)程
}
}
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)擊就可以清屏。
在java程序中加入代碼調(diào)用這個(gè)庫(kù),即可實(shí)現(xiàn)當(dāng)前屏幕的清屏。
實(shí)現(xiàn)步驟:
1.寫(xiě)一個(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.再寫(xiě)一個(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è)試類(lèi)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í)行線(xiàn)程
}
}
5.在cmd下 javac Test.java
要java在windows下的cmd下實(shí)現(xiàn)清屏,唯一的方案,就是通過(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)前屏幕的清屏。
實(shí)現(xiàn)步驟:
1.寫(xiě)一個(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.再寫(xiě)一個(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è)試類(lèi)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í)行線(xiàn)程
}
}
5.在cmd下 javac Test.java
新聞名稱(chēng):java中清屏代碼,Java清屏函數(shù)
路徑分享:http://chinadenli.net/article25/dsiciji.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)