Jacob了,我试成功的一个,官网:http://danadler.com/jacob/。

思路就是:c#注册一下  java调用!

步骤如下:
1,在官网上把需要的包下下来,其文件目录如下:

Java调用C# dll jacob

2.在开发环境中引入jacob.jar (解压放置于jdk_home/jre/lib/ext目录下);

拷贝jacob-1.19-x86.dll文件到 C:\Windows\System32目录,如果是Web应用的话还需要拷贝到jdk1. 8\bin目录(jdk安装目录下的bin目录)

Java调用C# dll jacob

一般我两个这玩意都拷进去 省事

3.生成签名,一般有支持注册dll命令的 用vs自带就行,cmd不支持,敲入如下命令生成强命名

key:sn -k MyKeyFire.snk

Java调用C# dll jacob

其中MyKeyFire是名字,可以自己随便取。注意生成显示的路径,拷贝出来

Java调用C# dll jacob

4.c#写类库行代码

Java调用C# dll jacob

右击项目名,选择属性:
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文件目录,造成无法定位  更无法注册)

Java调用C# dll jacob

说明有问题,重新做个新项目  一般是能cd的

6.Java程序
新建一个java项目,将jacob.jar包add build path,
main程序如下:

Java调用C# dll jacob

记住 也有报错 类似这样的

Java调用C# dll jacob

一般参数没写错的话   是因为vs编译  CPU不能选择任何cpu  我选了x86 重新编译

Java调用C# dll jacob

注意事项:

1)、dotnetCom = new ActiveXComponent("TestCom.HelloWorld.");注意正确映射GUID,否则报错找不到映射类,解决方式:在注册表中查看相应类名

例如:运行->regedit-> HKEY_CLASSES_ROOT-> TestCom.HelloWorld

 

 

相关文章: