Java调用dll Java调用COM组件
来源:互联网 发布:minix源码下载 编辑:程序博客网 时间:2024/06/05 05:05
1、JNative
JNative调用dll很方便,只是需要dll有导出函数,否则调不到。就是说要调用的方法必须是导出函数。如果不知道你的dll有没有这个导出函数,可下载这个软件查看——DLL函数查看器。
下载JNative开源项目(百度之),解压开,拿到三个文件,分别是:JNativeCpp.dll,libJNativeCpp.so,JNative.jar 。
——JNativeCpp.dll Windows下用的,拷贝到c:/windows / system32目录下
如果不行,可能是64b系统,在c:/windows /SysWOW64文件夹下面再放一个
——libJNativeCpp.so Linux下的,拷贝到系统目录下;
——JNative.jar 这是一个扩展包,导入工程LIB中或将其拷贝到jdk\jre\lib\ext 下,系统会自动加载。
例子:使用JNative组件调用一个测试应用服务器状态的TestABC.dll文件,Dll文件中包含一个TestMain(String ip,int port)方法,返回一个整形的结果(1或0)
public static void main(String[] args) {System.loadLibrary("TestABC");JNative n = null;try {n = new JNative("TestABC", "TestMain");// n.setRetVal(Type.STRING);int i = 0;n.setParameter(i++, Type.STRING, "192.168.1.108");n.setParameter(i++, Type.INT, "" + 1000);n.invoke();return Integer.parseInt(n.getRetVal());} catch (NativeException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}
Jacob调用COM组件,如果dll文件可以注册为COM组件,可以使用Jacob方式调用,很好用,而且不需要导出函数。
Jacob下载:点击打开链接
例子:
第一步,注册组件,注册方式为 开始——运行——输入命令cmd——输入命令regsvr32——空格——拖入要注册的dll文件——回车
显示成功,则注册完成。
第二步,去注册表中把你注册com组件找到,一般命名方式是“dll名字+ . +后缀”,可以根据dll的名字找,这是获取此com组件的关键,同时进一步判断你注册成功了。
第三步,写代码调用
ActiveXComponent axc = new ActiveXComponent("testcom.Test");//获取对象Dispatch dis = axc.getObject();String str ="";//初始化Variant v1 = new Variant(str,true);//输出参数定义,必须这样,否则得不到输出参数的值Variant v2=new Variant();//返回值定义v2 = Dispatch.call(dis, "getFace", "100",200,v1);System.out.println("输出参数值:"+v1);System.out.println("返回值:"+v2);代码解释:调用方法时,注意此处有Java中没有的概念,叫做输出参数,用于返回值不够时的传值。输出参数的定义如上,一般参数定义与Java相同,直接传输即可。
忘了说最初,需要把jacob解压开,获取里面的dll文件,放到c:/windows / system32目录,建议64b的系统再放一份到c:/windows /SysWOW64文件夹下。里面的jacob.jar就不用多说了吧,放到项目里导入就行啦。
- Java调用dll Java调用COM组件
- java 调用 com组件
- JAVA调用COM组件
- java调用com组件
- Java Script 如何调用DLL COM组件事件
- C# 制作Com组件:java调用.net DLL的方法
- java 调用 com 组件 随笔
- Java调用COM组件 JACOB
- java调用com组件方法
- java 如何调用com组件接口方法
- 转 java调用com组件方法
- 在 JAVA 中调用 COM 组件
- 通过COM组件方式实现java调用C#写的DLL文件 转
- 通过COM组件方式实现java调用C#写的DLL文件
- 通过COM组件方式实现java调用C#写的DLL文件
- java调用TD的COM组件OTAClient80.dll实现从TD中取数
- 通过COM组件方式实现java调用C#写的DLL文件
- Java之Jacob调用COM接口DLL-----------------------------------dm。dll
- centos网络配置
- C# TabControl 不显示选项卡标题
- ASP.NET怎么实现跨页面传值
- php处理url的几个函数
- Java应用程序中实现copy图像功能
- Java调用dll Java调用COM组件
- c++数据类型转换 sprintf、swprintf、wsprintf
- 微信简史:2年时间从0到3亿的微创新
- springmvc使用JSTL标签库
- Oracle 之 区分你的oracle是64位 or 32位?
- 基本语言细节--《The C++ Programming Language 》--(3)基本功能
- C++内嵌汇编(一):反汇编分析C++代码
- 一日一设计模式之C++篇(Build模式)
- Install “build-essential” on RHEL/CentOS and OpenSolaris