按照網上資料做了個例子(這裏),我的平臺是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可以正常調用。