Java调用dll Java调用COM组件

原创 2013年12月05日 10:48:43

1、JNative

JNative调用dll很方便,只是需要dll有导出函数,否则调不到。就是说要调用的方法必须是导出函数。如果不知道你的dll有没有这个导出函数,可下载这个软件查看——DLL函数查看器

下载JNative开源项目(百度之),解压开,拿到三个文件,分别是:JNativeCpp.dlllibJNativeCpp.soJNative.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();
		}
	}


2、Jacob

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就不用多说了吧,放到项目里导入就行啦。


通过COM组件方式实现java调用C#写的DLL文件

通过JAVA调用C#的DLL文件实现。网上资料很多,自己整合总结了一下,做个备忘。  一、C#写com组件 开发环境 VS2013 1、新建工程:TestDemo     //根据自己需要取工程名...

通过COM组件方式实现java调用C#写的DLL文件

注:本文转自这里 , 其中红色标注部分是自己在实际操作过程中碰到问题的解决方法  最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C...

java调用com组件实例

  • 2013年08月07日 21:14
  • 1.35MB
  • 下载

JAVA com组件调用示例

  • 2008年10月30日 23:32
  • 2KB
  • 下载

在 JAVA 中调用 COM 组件

以前没用过JAVA,一切从头开始: 1、下载 Eclipse。 http://mirrors.ustc.edu.cn/eclipse/eclipse/downloads/drops/R-3.7.2...

jcom java调用com+组件

  • 2008年10月29日 14:58
  • 566KB
  • 下载

java com串口组件调用实例

  • 2009年01月05日 20:31
  • 996B
  • 下载

java调用com组件操作word使用总结(jacob)

首先需要下载最新的jacob,不一定是帖子上说的1.14.1,接下来就是一下介绍了。缺点必须安装office 2008-4-27  Edited By DingDangXiaoMa 运用jac...

java调用com组件操作word使用总结(jacob)

ava调用com组件操作word使用总结(jacob) 简单描述     在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作;  一、准备工...
  • dhdhxgx
  • dhdhxgx
  • 2015年05月07日 11:37
  • 902
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java调用dll Java调用COM组件
举报原因:
原因补充:

(最多只允许输入30个字)