如何在java中调用windowsapi

上传人:xiao****1972 文档编号:84932298 上传时间:2019-03-05 格式:DOC 页数:6 大小:88KB
返回 下载 相关 举报
如何在java中调用windowsapi_第1页
第1页 / 共6页
如何在java中调用windowsapi_第2页
第2页 / 共6页
如何在java中调用windowsapi_第3页
第3页 / 共6页
如何在java中调用windowsapi_第4页
第4页 / 共6页
如何在java中调用windowsapi_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《如何在java中调用windowsapi》由会员分享,可在线阅读,更多相关《如何在java中调用windowsapi(6页珍藏版)》请在金锄头文库上搜索。

1、如何在JAVA中调用windows APIJAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI(JAVA NATIVE INTERFACE)。在Windows平台上实现Java本地方法 在Windows平台上创建本地方法共有如下所示的五个步骤: 1、写Java代码2、译Java代码3、创建C头文件(.h 文件) 4、编写C代码并创建动态连接库(DLL)5、运行应用程序编写java代码:要在代码中使用本地方法,要额外增加两个部分。 第一个部分:必须声明本地方法。声明方法与一般的函数声明

2、一样,但必须指定native关键字,如下所示 public native void mynativefunction(); 第二个部分:必须显式地加载本地代码库。为了加载本地代码库,必须在类的一个静态块中加载这个库。加载库和使用库的方法如下所示: class NativeExample static System.loadLibrary (mynativelib); public static void main(String args) mynativelib mylib=new mynativelib(); mylib.mynativefunction(); 编译Java代码 使用Java

3、编译工具(javac)编译*.java代码创建 C 头文件(.h文件) 为了将C代码用作Java的本地方法,必须使用特殊的函数声明,以便在C代码编译的时候,能够为Java所使用。Java编译器的javah工具将根据Java代码生成相应的头文件(.h文件),这些头文件必须在C代码中包含。 头文件创建方法为: javah jni 编写C代码并创建动态连接库(DLL)可以使用VC+6.0建立动态连接库。 在新建工程中选择Win32 Dynamic-Link Library,建立一个Simple DLL Project,把刚才建立的头文件包含进工程,并在工程中加入需要实现的本地方法,函数头部分同头文件

4、中声明的那样。在函数中加入功能代码。代码完成后,进行编译,在Tools下拉式菜单的Options设置下设置JDK的include目录编译通过后,制作一个release版本的DLL,放到Windows 的 PATH 环境变量所指定的路径中或程序运行的目录下,确保程序可以找到这个DLL文件。 运行应用程序 至此,全部工作完成,像平时一样运行Java程序,就可以实现对本地方法的调用: java 详细描述如下我的工具:JBUILDERX及其内置的jdk1.4及resin2.1调试服务器,创天中文vc+6.01、java文件:package web.test;public class MyNative

5、public MyNative() public native void Hello();public static void main(String args)MyNative mn=new MyNative();mn.Hello();staticSystem.loadLibrary(MyNative);用jbuilderX编译它,然后右边选中MyNative.java,选属性,勾选Generate JNI head file,options选JNI for jdk1.1 and later,确定。这时,在右边的工具栏里的MyNative.java前面就多了一个可以展开的按钮,下面是刚产生的

6、 JNI 头文件web_test_MyNative.h,如果没有,请刷新或者再编译,应该就有了。web_test_MyNative.h:/* DO NOT EDIT THIS FILE - it is machine generated */#include /* Header for class web_test_MyNative */#ifndef _Included_web_test_MyNative#define _Included_web_test_MyNative#ifdef _cplusplusextern C #endif/* Class: web_test_MyNative*

7、 Method: Hello* Signature: ()V*/JNIEXPORT void JNICALL Java_web_test_MyNative_Hello(JNIEnv *, jobject);#ifdef _cplusplus#endif#endif打开vc+6.0工具,选择新建工程-Win32 Dynamic-Link Library,工程名为MyNative;将web_test_MyNative.h拷至工程目录MyNative下,并从jdk/include下面copy所有头文件包括win32目录下的至你的vc+安装目录/MFC/Include下面;然后新建文件C+ sourc

8、e file,命名为MyNative。MyNative.cpp:# include # include # include web_test_MyNative.hJNIEXPORT void JNICALL Java_web_test_MyNative_Hello(JNIEnv *, jobject)printf(Hello World!n);return;compile MyNative.cpp选择编译,构件MyNative.dll到你的电脑中工程目录下的debug目录获取MyNative.dll,把它copy到jdk1.4/biin目录下。不需作任何修改,你就可以在JbuilderX中Run MyNative显示结果:Hello World!你会了么?注意我们这里include了 jni.h和刚才得到的HelloWorld.h文件。因此你要在VC+里面设置好,jni.h在JAVA_HOME/include里面。编译通过后再生成dll文件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号