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
3.用javah生成对应的c语言头文件Clear.h
4.使用Visual Studio创建win32工程,生成对应的dll动态库
4.1 创建工程
4.2 应用程序类型:DLL
4.3 把第3步生成的头文件Clear.h,以及需要依赖的两个头文件jni.h和jni_md.h导入工程
jni.h在jdk的安装路径include目录下。
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动态库
解决方案--->属性
4.6 生成dll
解决方案--->右键生成
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
完美清屏,搞定!!!
本文向大家介绍Python的IDEL增加清屏功能实例,包括了Python的IDEL增加清屏功能实例的使用技巧和注意事项,需要的朋友参考一下 为idle增加一个清屏的扩展ClearWindow就可以了(在http://bugs.python.org/issue6143中可以看到这个扩展的说明)。 下面我说安装使用的方法。首先下载clearwindow.py(点击可直接下载,不能下载的可以右键保存,格
本文向大家介绍android实现录屏小功能,包括了android实现录屏小功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android实现录屏小功能的具体代码,供大家参考,具体内容如下 思路 android实现录屏功能有两种方案,一种是直接使用android自带的MediaProjectionManager实现录屏功能,第二种是是只录语音,用户的操作通过某种方式进行记录保存,最
本文向大家介绍android截屏功能实现代码,包括了android截屏功能实现代码的使用技巧和注意事项,需要的朋友参考一下 android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件里) 2. 添加1个Button(activity_main.xml文件)
本文向大家介绍轻松实现Android锁屏功能,包括了轻松实现Android锁屏功能的使用技巧和注意事项,需要的朋友参考一下 锁屏需要引入设备超级管理员。在文档Android开发文档的Administration中有详细的说明。Android设备管理系统功能和控制访问。 主要有一下几个步骤: 1 创建广播接收者,实现DeviceAdminReceiver 2 在清单文件中注册该广播(不同普通的广播
本文向大家介绍实现一个页面锁屏的功能相关面试题,主要包含被问及实现一个页面锁屏的功能时的应答技巧和注意事项,需要的朋友参考一下 <!DOCTYPE html> <html> <head> <title>Ctrl+l监控锁屏</title> </head> <body> <div id="message_div"></div> <script type="text/javascript" langu
本文向大家介绍如何实现一个全屏的功能?相关面试题,主要包含被问及如何实现一个全屏的功能?时的应答技巧和注意事项,需要的朋友参考一下 chrome下: 生产环境: 不同浏览器的实现方案不同,没有形成统一的标准。可以交由专门的类库———— screenFull实现。
本文向大家介绍js实现简单锁屏功能实例,包括了js实现简单锁屏功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现简单锁屏功能的方法。分享给大家供大家参考。具体实现方法如下: 如果大家不知道什么是锁屏,可以去163信箱看一看,用途是你要离开屏幕一段时间时可以暂时锁住屏幕保留工作空间。带回来只要重新输入密码验证即可恢复到原先的工作空间。 一般都是通过在页面上增加不透明遮罩层实现锁
本文向大家介绍MFC实现全屏功能代码实例,包括了MFC实现全屏功能代码实例的使用技巧和注意事项,需要的朋友参考一下 windows应用程序中有很多的播放器都有快捷键控制窗口以全屏幕的方式显示。MFC实现给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以实现了。 实现代码如下所示: