1.創建環境:vs2012 win7 java1.6
2.步驟:
(1);創建一個類庫項目RemoteCom,進入項目屬性,在應用程序的程序集選項中設置使用程序集com可見
(2);在生成選項中選中爲com互操作註冊
(3);打開vs的command prompt命令行客戶端,輸入sn -k remoteAppKey.snk生成簽名文件,默認生成在vs安裝目錄下的vc文件夾中
(4);打開簽名選項,選擇爲程序集簽名,選中瀏覽找到上一步生成的簽名文件
(5);c#代碼
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace RemoteCom
{
[Guid("BD6B85B2-CB93-49E1-8946-9ECC95B9A57B")]
public class AppConnect
{
public AppConnect(){}
public string ConnectToApp(string str, string str2)
{
Console.WriteLine("測試com組件");
return "測試: " + str + " | " + str2;
}
}
}
在工具中選擇生成Guid將生成的GUID複製到代碼的相應位置
(6);右擊項目選擇生成
(7);進入項目的Dbug目錄,複製.dll和.tlb兩個文件,複製到java的開發環境的bin目錄
(8);打開command prompt爲程序集註冊,輸入命令regasm RemoteCom.DLL /tlb:RemoteCom.tlb爲程序集註冊
(9);java代碼
public class TestCom {
public static void main(String[] args){
try{
ActiveXComponent dotnetCom = null;
dotnetCom = new ActiveXComponent("RemoteCom.AppConnect"); //需要調用的C#代碼中的命名空間名和類名。
Variant var = Dispatch.call(dotnetCom,"ConnectToApp","juxinli\\xinhao","Info201311"); //需要調用的方法名和參數值
String str = var.toString(); //返回需要的字符串
System.out.println(str); //輸出得到的字符串。檢查結果是否正確。
} catch (Exception ex) {
ex.printStackTrace();
}
}
}