按照网上资料做了个例子(这里),我的平台是64位vs2008,和例子中不同,遇到了问题如下:

 

1.vs中生成报错:Could not be converted to a type library - Error: Element not found

例子中没说清楚用生成的guid覆盖哪些地方,我把所有出现guid的地方都覆盖了,所以报错了。实际只覆盖AssemblyInfo.cs中的guid就行了。

 

2.执行java时报错:com.jacob.com.ComFailException: Can't co-create object

开始时怀疑是c#生成的目标平台不对,把anycpu改为x64,结果生成报错is not a valid assembly.后来发现不是这个问题.

这是64位平台导致的。例子中“8、在JAVA开发环境中注册新生成的com组件,在客户环境中,通过regasm.exe注册com组件。”这一步需要改为路径:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe。

参考这里

 

3.仅需要把jacob-1.17-x64.dll和c#生成的dll拷贝到jdk1.7/bin下,即可。jdk1.7.0_40-64bit可以正常调用。