Jacob了,我试成功的一个,官网:http://danadler.com/jacob/。
思路就是:c#注册一下 java调用!
步骤如下:
1,在官网上把需要的包下下来,其文件目录如下:
2.在开发环境中引入jacob.jar (解压放置于jdk_home/jre/lib/ext目录下);
拷贝jacob-1.19-x86.dll文件到 C:\Windows\System32目录,如果是Web应用的话还需要拷贝到jdk1. 8\bin目录(jdk安装目录下的bin目录)
一般我两个这玩意都拷进去 省事
3.生成签名,一般有支持注册dll命令的 用vs自带就行,cmd不支持,敲入如下命令生成强命名
key:sn -k MyKeyFire.snk
其中MyKeyFire是名字,可以自己随便取。注意生成显示的路径,拷贝出来
4.c#写类库行代码
右击项目名,选择属性:
1)应用程序–>程序集信息,勾选使程序集COM可见
2)生成–>勾选为COM互操作注册
3)签名–>勾选为程序集签名,选择刚刚生成的强签名文件
编译程序,在debug目录下会生成 TestCom.dll 和TestCom.tlb
5.回到Visual 中自带命令工具,类似cmd的,进入Debug目录,运行注册命令:
regasm TestCom.DLL /tlb:TestCom.tlb
gacutil -i TestCom.DLL (执行这个命令需要TestCom.DLL 具有强名称)
(注意 存在cmd命令中 进入不了bin文件目录,造成无法定位 更无法注册)
说明有问题,重新做个新项目 一般是能cd的
6.Java程序
新建一个java项目,将jacob.jar包add build path,
main程序如下:
记住 也有报错 类似这样的
一般参数没写错的话 是因为vs编译 CPU不能选择任何cpu 我选了x86 重新编译
注意事项:
1)、dotnetCom = new ActiveXComponent("TestCom.HelloWorld.");注意正确映射GUID,否则报错找不到映射类,解决方式:在注册表中查看相应类名
例如:运行->regedit-> HKEY_CLASSES_ROOT-> TestCom.HelloWorld