欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java使用jni清屏功能的實現(xiàn)(只針對cmd)

 更新時間:2018年05月26日 09:45:57   作者:雅鈞  
JNI是Java Native Interface的縮寫,它提供了若干的API實現(xiàn)了Java和其他語言的通信(主要是C&C++)。這篇文章主要介紹了Java使用jni清屏功能的實現(xiàn)(只針對cmd) ,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧

JNI簡介

       JNI是Java Native Interface的縮寫,它提供了若干的API實現(xiàn)了Java和其他語言的通信(主要是C&C++)。從Java1.1開始,JNI標(biāo)準(zhǔn)成為java平臺的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI一開始是為了本地已編譯語言,尤其是C和C++而設(shè)計的,但是它并不妨礙你使用其他編程語言,只要調(diào)用約定受支持就可以了。使用java與本地已編譯的代碼交互,通常會喪失平臺可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的。例如,使用一些舊的庫,與硬件、操作系統(tǒng)進行交互,或者為了提高程序的性能。JNI標(biāo)準(zhǔn)至少要保證本地代碼能工作在任何Java 虛擬機環(huán)境。 簡單的來說JNI就是方便了Java調(diào)用c,c++語言的函數(shù);java通過JNI提供接口(頭文件),c,c++實現(xiàn)這些函數(shù)供java調(diào)用。

在java中沒有提供清屏的接口,所有可以通過jni調(diào)用c語言的system(“cls”)清屏。當(dāng)然,僅限于cmd清屏,不支持eclipse的控制臺console清屏。

步驟:

1. 編寫java的清屏native接口。

public class Clear {
  static{
    System.loadLibrary("clear");//加載clear.dll動態(tài)庫
  }
  public native static void clsCmd();//清屏
  }

2.編譯Clear.java,生成Clear.class

3.用javah生成對應(yīng)的c語言頭文件Clear.h

4.使用Visual Studio創(chuàng)建win32工程,生成對應(yīng)的dll動態(tài)庫

4.1 創(chuàng)建工程

4.2 應(yīng)用程序類型:DLL

4.3 把第3步生成的頭文件Clear.h,以及需要依賴的兩個頭文件jni.h和jni_md.h導(dǎo)入工程

      jni.h在jdk的安裝路徑include目錄下。

      jni_md.h在jdk安裝路徑include目錄中的win32目錄下。

      把這三個頭文件先復(fù)制粘貼到工程項目目錄下:

    然后在VS中把它們導(dǎo)入:

   頭文件--->添加--->現(xiàn)有項--->選中上邊的三個頭文件--->添加

        把Clear.h頭文件中的 #include <jni.h>  改為  #include “jni.h”

4.4 添加.cpp文件,編寫c代碼。

      源文件--->添加--->新建項--->C++文件:clear.cpp

#include "Clear.h"
#include <iostream>
JNIEXPORT void JNICALL Java_Clear_clsCmd
(JNIEnv *, jclass) {
  system("cls");//c的清屏
}

4.5 設(shè)置生成64位dll動態(tài)庫

解決方案--->屬性

4.6 生成dll

解決方案--->右鍵生成

5 測試

5.1 把clear.dll復(fù)制到第1,2步Clear.class所在目錄.

5.2 編寫測試類

public class TestJNI {
  public static void main(String[] args) {
    System.out.println("hello jni");
    Clear.clsCmd();//清屏
  }
}

5.3 編譯測試類

     javac TestJNI.java

5.4 執(zhí)行測試類

     java TestJNI

    完美清屏,搞定!??!

相關(guān)文章

  • JDBC用法小結(jié)

    JDBC用法小結(jié)

    這篇文章主要介紹了JDBC用法,較為詳細(xì)的分析了基于JDBC進行數(shù)據(jù)庫操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • spring security獲取用戶信息的實現(xiàn)代碼

    spring security獲取用戶信息的實現(xiàn)代碼

    這篇文章主要介紹了spring security獲取用戶信息的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • dubbo?filter中有關(guān)bean注入和配置文件讀取方式

    dubbo?filter中有關(guān)bean注入和配置文件讀取方式

    這篇文章主要介紹了dubbo?filter中有關(guān)bean注入和配置文件讀取方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java中如何使用MD5進行加密

    java中如何使用MD5進行加密

    這篇文章主要介紹了java實現(xiàn)md5加密示例,在各種應(yīng)用系統(tǒng)的開發(fā)中,經(jīng)常需要存儲用戶信息,很多地方都要存儲用戶密碼,有需要的小伙伴可以參考下。
    2016-11-11
  • Java中LinkedList真的是查找慢增刪快

    Java中LinkedList真的是查找慢增刪快

    這篇文章主要介紹了Java中LinkedList真的是查找慢增刪快,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 一篇文章帶你入門java算術(shù)運算符(加減乘除余,字符連接)

    一篇文章帶你入門java算術(shù)運算符(加減乘除余,字符連接)

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運算符,結(jié)合實例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運算符、邏輯運算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2021-08-08
  • SSH框架網(wǎng)上商城項目第13戰(zhàn)之Struts2文件上傳功能

    SSH框架網(wǎng)上商城項目第13戰(zhàn)之Struts2文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項目第13戰(zhàn)之Struts2文件上傳功能的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Mybatis中的@Select、foreach用法

    Mybatis中的@Select、foreach用法

    這篇文章主要介紹了Mybatis中的@Select、foreach用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • IDEA卡在”正在解析Maven依賴項“的解決方法

    IDEA卡在”正在解析Maven依賴項“的解決方法

    在創(chuàng)建新的SpringBoot項目時,始終卡在"正在解析Maven依賴項…",本文小編給大家介紹了幾種相關(guān)的解決方案,具有一定的參考價值,需要的朋友可以參考下
    2023-11-11
  • Java如何高效使用OpenCV圖像處理庫

    Java如何高效使用OpenCV圖像處理庫

    OpenCV是一個開源的計算機視覺庫,它提供了一系列豐富的圖像處理和計算機視覺算法,包括圖像讀取、顯示、濾波、特征檢測、目標(biāo)跟蹤等功能,這篇文章主要給大家介紹了關(guān)于Java如何高效使用OpenCV圖像處理庫的相關(guān)資料,需要的朋友可以參考下
    2024-03-03

最新評論