激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java使用jni清屏功能的實(shí)現(xiàn)(只針對(duì)cmd)

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

2021-05-05 11:43雅鈞 Java教程

JNI是Java Native Interface的縮寫(xiě),它提供了若干的API實(shí)現(xiàn)了Java和其他語(yǔ)言的通信(主要是C&C++)。這篇文章主要介紹了Java使用jni清屏功能的實(shí)現(xiàn)(只針對(duì)cmd) ,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧

jni簡(jiǎn)介

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

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

步驟:

1. 編寫(xiě)java的清屏native接口。

?
1
2
3
4
5
6
public class clear {
  static{
    system.loadlibrary("clear");//加載clear.dll動(dòng)態(tài)庫(kù)
  }
  public native static void clscmd();//清屏
  }

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

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

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

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

4.使用visual studio創(chuàng)建win32工程,生成對(duì)應(yīng)的dll動(dòng)態(tài)庫(kù)

4.1 創(chuàng)建工程

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

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

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

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

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

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

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

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

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

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

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

4.4 添加.cpp文件,編寫(xiě)c代碼。

      源文件--->添加--->新建項(xiàng)--->c++文件:clear.cpp

?
1
2
3
4
5
6
#include "clear.h"
#include <iostream>
jniexport void jnicall java_clear_clscmd
(jnienv *, jclass) {
  system("cls");//c的清屏
}

4.5 設(shè)置生成64位dll動(dòng)態(tài)庫(kù)

解決方案--->屬性

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

4.6 生成dll

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

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

5 測(cè)試

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

5.2 編寫(xiě)測(cè)試類

?
1
2
3
4
5
6
public class testjni {
  public static void main(string[] args) {
    system.out.println("hello jni");
    clear.clscmd();//清屏
  }
}

5.3 編譯測(cè)試類

     javac testjni.java

5.4 執(zhí)行測(cè)試類

     java testjni

    完美清屏,搞定!!!

原文鏈接:https://www.cnblogs.com/xyj-bk/p/9083427.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美在线观看视频网站 | 亚洲成人中文字幕在线 | 成人一区二区三区在线 | arabxxxxvideos| 国产中出在线观看 | 精品国产一区二区亚洲人成毛片 | hdbbwsexvideo| www.99re14.com | 欧美一级片免费在线观看 | 久久久涩 | 国产亚洲精品久久久久久久久久 | 成人三级视频在线观看 | 国产精品视频在线观看免费 | 精品亚洲va在线va天堂资源站 | 日韩视频在线观看免费视频 | 成人毛片视频免费看 | 久久精品一区二区三区国产主播 | 日韩欧美电影一区二区三区 | 中文字幕在线观看视频www | 俄罗斯hdxxx| 免费a级黄色毛片 | 久草最新在线 | 成人资源在线 | 激情毛片 | 古装三级在线观看 | 日韩精品99久久久久久 | 成人福利视频导航 | 国产精品一区视频 | 午夜男人免费视频 | 欧美一级久久久久久久大片 | av免费在线观看国产 | 成人免费一区二区三区 | 精品亚洲午夜久久久久91 | 国产精品观看在线亚洲人成网 | 国产永久免费观看 | 天堂福利电影 | 国产精品视频一区二区三区四区国 | 欧美a∨亚洲欧美亚洲 | 免费亚洲视频在线观看 | 中文字幕在线观看视频www | 久久久久久久亚洲精品 |