java中调用dll动态库的简洁方法

java中调用dll动态库的简洁方法

ID:19795718

大小:44.00 KB

页数:7页

时间:2018-10-06

java中调用dll动态库的简洁方法_第1页
java中调用dll动态库的简洁方法_第2页
java中调用dll动态库的简洁方法_第3页
java中调用dll动态库的简洁方法_第4页
java中调用dll动态库的简洁方法_第5页
资源描述:

《java中调用dll动态库的简洁方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java中调用dll动态库的简洁方法解压JNative-1.3.2.zip获得三个文件,分别是:JNativeCpp.dll,libJNativeCpp.so,JNative.jar。JNativeCpp.dllWindows下用的,拷到windows/system32目录下;  libJNativeCpp.soLinux下使用的;  JNative.jar 这是一个扩展包,加载到你的程序中就可以。  一个简单例子importorg.xvolks.jnative.JNative;importorg.xvolks.jnative.Type

2、;importorg.xvolks.jnative.exceptions.NativeException;publicclassJNativeTest{publicstaticfinalintmessageBox(intparentHandle,Stringmessage,Stringcaption,intbuttons){//throwsNativeException,IllegalAccessException{JNativen=null;try{n=newJNative(“User32.dll”,“MessageBoxA”);//

3、“.dll”不用也可以,常量DLL_NAME的值为User32.dll//构造JNative时完成装载User32.dll,并且定位MessageBoxA方法n.setRetVal(Type.INT);//指定返回参数的类型inti=0;n.setParameter(i++,Type.INT,“”+parentHandle);n.setParameter(i++,Type.STRING,message);n.setParameter(i++,Type.STRING,caption);n.setParameter(i++,Type.INT

4、,“”+buttons);//指定位置上的参数类型和值n.invoke();//调用方法returnInteger.parseInt(n.getRetVal());}catch(Exceptionex){ex.printStackTrace();}finally{if(n!=null)try{n.dispose();}catch(NativeExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IllegalAccessExceptione){//TOD

5、OAuto-generatedcatchblocke.printStackTrace();}//记得释放}return0;}publicstaticvoidmain(String[]args)throwsNativeException,IllegalAccessException{JNativeTest.messageBox(100,“这是使用jnative练习”,“jnativetest”,1);}}关于linux下编译C代码部分说明:对于linux不同版本,可能会导致libJNativeCpp.so不同原带的libJNativeCp

6、p.so是在glic2.4下编译的为了适应glic2.3的情况,重新编译了libJNativeCpp.so,在forgcc3.4.6glibc2.3下。编译办法:在JNative-1.3.2-srcJNativeCppRelease目录下1、备份calls.o和asm_io.o这两个Object文件2、makeclean3、恢复到当前目录calls.o和asm_io.o这两个Object文件4、make目前已经修改了Release目录下的makefile和subdir.mk文件,使得在makeclean的时候不删除calls.o和a

7、sm_io.o两个文件附:linux动态库搜索路径:exportLD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATHmakefile文件#################################################################################Automatically-generatedfile.Donotedit!########################################################################

8、########-include。./makefile.initRM:=rm-rf#Allofthesourcesparticipatinginthebuildaredefinedhere-includes

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。