亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-28 11:49:12 來源:腳本之家 閱讀:156 作者:雅鈞 欄目:編程語言

JNI簡介

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

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

步驟:

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

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

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

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

3.用javah生成對應的c語言頭文件Clear.h

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

4.使用Visual Studio創建win32工程,生成對應的dll動態庫

4.1 創建工程

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

4.2 應用程序類型:DLL

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

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

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

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

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

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

    然后在VS中把它們導入:

   頭文件--->添加--->現有項--->選中上邊的三個頭文件--->添加

        把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 設置生成64位dll動態庫

解決方案--->屬性

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

4.6 生成dll

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

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

5 測試

5.1 把clear.dll復制到第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 執行測試類

     java TestJNI

    完美清屏,搞定!!!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林西县| 龙陵县| 宁晋县| 高唐县| 景宁| 巴塘县| 台州市| 新竹市| 贡嘎县| 东至县| 元朗区| 苏尼特左旗| 札达县| 玉田县| 吴桥县| 同仁县| 天台县| 交口县| 横山县| 修文县| 宁远县| 湖口县| 高安市| 商水县| 炉霍县| 陆川县| 古丈县| 宁陵县| 泸水县| 大城县| 微博| 麻江县| 和政县| 都安| 册亨县| 娄底市| 宁化县| 嘉黎县| 修武县| 林周县| 浑源县|