初学jacob

JACOB 就是 JAVA-COM Bridge的缩写,提供自动访问com的功能,也是通过JNI功能访问Windows平台下的com组件或者win32系统库。

配置:

1,下载jacob,网址http://danadler.com/jacob/,有X86版本与X64版本,确定好版本。JDK版本,操作系统与jacob的版本要相同。

2,安装jacob,很简单

      解压以后,把jacob.dll文件放到system32下面,或者放到jdk/bin下面,也可以放在jre/bin下面

      jacob.jar放到环境变量里面,我使用的myeclipse配置的J2EE项目,直接放到了/web-inf/lib里面。

3,注册调用的DLL文件

     regsvr32 ***.dll  对DLL文件使用绝对路径,如果放在system32下面,可以不用写路径。注册成功以后会有提示框提示


     取消注册使用命令 regsvr32 -u ***.dll

4,编写java代码

调用的是一个没有参数的DLL方法,方法内部为:

Public Function testNoArgs() As Variant
 
    testNoArgs = "abcdddd"
    
End Function

java代码为:

public static void first(){
	ActiveXComponent sap = new ActiveXComponent("First.hw");
	Dispatch myCom = sap.getObject();
	System.out.println(Dispatch.call(myCom,"testNoArgs"));
}
调用这个方法,输出" abcdddd",成功。

    5,如果提示错误为: “Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid”,表示没有找到clsid,clsid是注册DLL文件是生成的一个编码,一般为Dll的工程名+“."+类名

          解决方法:通过注册表寻找DLL的CLSID

              打开注册表,使用命令regedit

              查找注册的DLL的文件名,在HKEY_CLASSES_ROOT里面寻找,找到CLSID

6,如果提示错误为“ Description: 8002000f / 非选择性的参数。”,表示传递的参数存在问题。

7,编写DLL文件时,注意给工程重新命名,类重新命名,否则会出现CLSID为“工程1.class1"的情况。

8,如果错误提示“文件未找到”,检查DLL内是否调用了其它的DLL,或者调用的文件是否都已经存放到相应的位置。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值