java使用jacob調用c#.net程式

來源:互聯網
上載者:User
七月 1st, 2010 by 尋道者

必備程式:jacob,為:jacobBin_17.zip
一、使用vs2008或者vs2010建立一個Windows類庫程式,項目名稱就叫InvokeCSharp,再建立一個類:ExampleClass,具體代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace InvokeCSharp{    /// <summary>    /// GUID自動產生就好了    /// </summary>    [Guid("C41D14FD-F719-41fc-94CD-4B64D19F44B0")]    public interface IExampleClass    {        /// <summary>        /// [DispId(1)]為方法的COM調度標識符,如果有多個方法可相應的在每個方法前面加[DispId(2)], [DispId(3)]        /// </summary>        /// <param name="name"></param>        /// <returns></returns>        [DispId(1)]        string HelloJava(string name);    }    [Guid("70FE7452-0D4B-4717-8352-FEB0F6E830C1"),    ClassInterface(ClassInterfaceType.None)]    public class ExampleClass : IExampleClass    {        public ExampleClass() { }        public string HelloJava(string name)        {            return "你好,Java傳遞過來的參數為:" + name;        }    }}

需要注意的是編譯前的配置步驟,主要有以下幾步:
1、方案總管中右鍵點擊項目名稱“InvokeCSharp”,選擇屬性
2、在“應用程式”頁簽中,點擊“程式集資訊”按鈕,在彈出的對話方塊中勾上最後一個複選框“使程式集COM可見”
3、在“產生”頁簽中,勾上最後一個複選框“為COM互操作註冊”
4、產生“InvokeCSharp”項目
5、在項目的Debug/bin檔案夾下會有這樣幾個檔案:一個是InvokeCSharp.dll,另一個是InvokeCSharp.tlb,這個就是我們要的COM程式
6、最後,註冊COM,開啟“Visual Studio 命令提示”,進入InvokeCSharp項目的Debug/bin檔案夾,運行“regasm InvokeCSharp.dll /tlb:InvokeCSharp.tlb”,這樣就註冊了COM,regasm為.NET Framework 工具中的程式集註冊工具。註冊成功後,每次C#程式有修改,都不再需要重新註冊了
二、jacob下載完成解壓後,將jacob.dll複製到Windows/system32/,jacob.jar複製到Java項目中
三、開啟Eclipse,建立一個Java Project,名字叫:JavaInvokeCSharp,然後建立一個帶有main的類,就叫JavaInvokeCSharpClass,代碼如下:

import com.jacob.activeX.ActiveXComponent;import com.jacob.com.ComThread;import com.jacob.com.Dispatch;import com.jacob.com.Variant;  public class JavaInvokeCSharpClass{public static void main(String[] args){try{ActiveXComponent dotnetCom = new ActiveXComponent("InvokeCSharp.ExampleClass");Variant var = Dispatch.call(dotnetCom,"HelloJava","Jacob真是個好東東");String str  = var.toString();System.out.println(str);}catch (Exception ex){ex.printStackTrace();}}}

運行該類,會輸出:你好,Java傳遞過來的參數為:Jacob真是個好東東

這樣,Java通過jacob調用c#程式就完成了。

 

Published by 尋道者 on 七 1, 2010 under Java方面 | Post your comment now

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.