Java调用C#com方法 C#COM DLL 不能被java直接调用,必须经过C++封装。 调用成功后,在其他机器上如何注册 请下载我的其他上传的gacutil.exe 和 regasm.exe 然后拷贝到其他机器上在dos下执行 gacutil 和regasm 命令注册即可 【Java调用C# COM方法】是指在Java应用程序中调用由C#编写的COM组件。由于Java本身不直接支持对.NET Framework中的COM组件进行调用,因此需要借助中间层来实现这一目标。通常有两种常见的方式:一是使用JNA(Java Native Access),二是使用Jacob(Java COM Bridge)。 ### 第一种方法:Java利用JNA调用C# DLL 1. **创建C# COM组件**: - 使用Visual Studio创建一个类库项目,并定义一个接口和类,例如`COMTestIfce`和`COMTestClass`。 - 在接口中定义需要暴露给Java调用的方法,如`add`、`say`和`isCOM1`。 - 配置项目设置,使程序集对COM可见,并生成COM Interop注册。 - 为程序集签名,生成`.snk`文件,以确保在目标机器上注册。 - 编译项目,生成`COMTest.dll`和`COMTest.tlb`。 2. **使用C++封装**: - 创建一个新的C++ DLL项目,如`COMTest_Bridge`。 - 在C++项目中包含C#生成的`.dll`和`.tlb`文件。 - 使用`gacutil.exe`和`regasm.exe`注册C#生成的COM组件。 - 编写C++代码,实现C#接口,并在C++ DLL中调用C#的方法。 ### 第二种方法:Java利用Jacob调用C# DLL 1. **配置Jacob**: - 下载Jacob库(`jacob-x.x.x.dll`和`jacob.jar`),将`jacob.jar`添加到Java项目的类路径中,`jacob-x.x.x.dll`放置在系统路径下或Java库路径中。 2. **编写Java代码**: - 使用Jacob的Java接口,创建一个与C# COM接口相对应的Java接口。 - 在Java代码中,使用Jacob的`ActiveXComponent`或`Dispatch`对象来实例化C# COM组件,并调用其方法。 无论是使用JNA还是Jacob,都需要在目标机器上进行相应的注册操作,这通常涉及复制必要的可执行文件(如`gacutil.exe`和`regasm.exe`)到目标机器并在DOS命令行中运行相应命令。 在实际应用中,选择JNA还是Jacob取决于项目需求和团队技术栈。JNA提供了更底层的访问,可能更高效,但使用起来可能较为复杂。而Jacob则提供了更简单的API,但在性能上可能略逊一筹。因此,在决定使用哪种方式时,需要权衡易用性、性能和兼容性等因素。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/release/download_crawler_static/5923893/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5923893/bg2.jpg)
剩余7页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/34c99286a3474b4a886c6e2993ae6c4c_truelove12358.jpg!1)
- 粉丝: 345
- 资源: 21
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)