- 浏览: 270638 次
- 性别:
- 来自: 武汉
文章分类
1,大概步骤
1) 准备好 DLL文件(32位和64位系统下编译的 有差别, 不能通用)。
2) 装好jdk和eclipse.
3) 下载jacob最新的包(目前是1.7)
4) 将jacob.jar导入到eclipse项目路径, 将jacob-1.17-M2-x64.dll(或者是jacob-1.17-M2-x32.dll)添加到环境变量path.
5) 可以开始.
2. 小例子
1).NET代码
创建InvokeCSharp项目,在InvokeCSharp.cs文件中加如下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace InvokeCSharp
{
[Guid("C41D14FD-F719-41fc-94CD-4B64D19F44B0")]
public interface IExampleClass
{
[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;
}
}
}
2)需要注意的是编译前的配置步骤,主要有以下几步:
1、解决方案资源管理器中右键点击项目名称“InvokeCSharp”,选择属性
2、在“应用程序”页签中,点击“程序集信息”按钮,在弹出的对话框中勾上最后一
个复选框“使程序集COM可见”
3、在“生成”页签中,勾上最后一个复选框“为COM互操作注册”
4、生成“InvokeCSharp”项目
5、在项目的Debug\bin文件夹下会有这样几个文件:一个是InvokeCSharp.dll,另
一个是InvokeCSharp.tlb,这个就是我们要的COM程序
6、最后,注册COM,打开“Visual Studio 命令提示”,进入InvokeCSharp项目
的Debug\bin文件夹,运行“regasmInvokeCSharp.dll /tlb:InvokeCSharp.tlb”,这样就注册了COM,regasm为.NET Framework 工具中的程序集注册工具。注册成功后,每次C#程序有修改,都不再需要重新注册了
3)java 代码
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import com.sun.xml.internal.ws.resources.DispatchMessages;
public class JavaInvokeCSharpClass {
private final String DLL_NAME = "DLLforVB.ComDLLforVB";
private ActiveXComponent dotnetCom = null;
private Dispatch dispatch = null;
private Variant var = null;
public JavaInvokeCSharpClass() {
dotnetCom = new ActiveXComponent(DLL_NAME);
dispatch = dotnetCom.getObject();
}
public static void main(String[] args) {
try {
JavaInvokeCSharpClass test = new JavaInvokeCSharpClass();
test.var = test.dispatch.call(test.dotnetCom, "ToolGetLocalIP");
String str = test.var.toString();
System.out.println(str);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
1) 准备好 DLL文件(32位和64位系统下编译的 有差别, 不能通用)。
2) 装好jdk和eclipse.
3) 下载jacob最新的包(目前是1.7)
4) 将jacob.jar导入到eclipse项目路径, 将jacob-1.17-M2-x64.dll(或者是jacob-1.17-M2-x32.dll)添加到环境变量path.
5) 可以开始.
2. 小例子
1).NET代码
创建InvokeCSharp项目,在InvokeCSharp.cs文件中加如下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace InvokeCSharp
{
[Guid("C41D14FD-F719-41fc-94CD-4B64D19F44B0")]
public interface IExampleClass
{
[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;
}
}
}
2)需要注意的是编译前的配置步骤,主要有以下几步:
1、解决方案资源管理器中右键点击项目名称“InvokeCSharp”,选择属性
2、在“应用程序”页签中,点击“程序集信息”按钮,在弹出的对话框中勾上最后一
个复选框“使程序集COM可见”
3、在“生成”页签中,勾上最后一个复选框“为COM互操作注册”
4、生成“InvokeCSharp”项目
5、在项目的Debug\bin文件夹下会有这样几个文件:一个是InvokeCSharp.dll,另
一个是InvokeCSharp.tlb,这个就是我们要的COM程序
6、最后,注册COM,打开“Visual Studio 命令提示”,进入InvokeCSharp项目
的Debug\bin文件夹,运行“regasmInvokeCSharp.dll /tlb:InvokeCSharp.tlb”,这样就注册了COM,regasm为.NET Framework 工具中的程序集注册工具。注册成功后,每次C#程序有修改,都不再需要重新注册了
3)java 代码
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import com.sun.xml.internal.ws.resources.DispatchMessages;
public class JavaInvokeCSharpClass {
private final String DLL_NAME = "DLLforVB.ComDLLforVB";
private ActiveXComponent dotnetCom = null;
private Dispatch dispatch = null;
private Variant var = null;
public JavaInvokeCSharpClass() {
dotnetCom = new ActiveXComponent(DLL_NAME);
dispatch = dotnetCom.getObject();
}
public static void main(String[] args) {
try {
JavaInvokeCSharpClass test = new JavaInvokeCSharpClass();
test.var = test.dispatch.call(test.dotnetCom, "ToolGetLocalIP");
String str = test.var.toString();
System.out.println(str);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
发表评论
-
获取几种项目路径的方式(Done)
2013-10-09 11:20 904// 第一种:获取类加载的根路径 D:\git\daoti ... -
Spring 学习笔记-1
2013-07-23 13:51 841一,Maven配置 <dependency> &l ... -
Github问题
2013-07-03 10:28 1117错误提示: The current branch is not ... -
Java Basis
2013-03-14 11:03 828--java 1,类的关系 • De ... -
java Final 关键字
2013-03-07 10:21 7541、final类不能被继承,没有子类,final类中的方法默认 ... -
Java中的Enum用法介绍
2013-01-10 17:17 106211. 关于Java Enum: JDK1.5之前没有Enum ... -
Eclipse WTP 配置tomcat 但无法访问tomcat主页的解决方法
2013-01-07 14:07 1332首先,在Eclipse的servers view下双击要配置的 ... -
JACOB API
2012-12-21 14:37 617901.import com.jacob.activeX.Act ... -
(Done)关于 instance of
2012-07-19 10:26 9411. “String” instanceof Object - ... -
启动tomcat 7 一闪而过
2012-06-06 23:12 8145问题概述: 在win7下,,点击startup.bat , 命 ... -
java的final和static总结
2012-05-15 23:53 941一、final 根据程序上下文环境,Java关键字final ... -
关于String的 split方法
2012-04-28 10:35 11011、如果用“.”作为分隔的话,必须是如下写法:String.s ... -
int 和 String 互相转换的多种方法
2012-02-29 16:38 8051 如何将字串 String 转换成整数 int? A. 有 ... -
Eclipse External Tools --变量设置
2012-01-09 14:18 11125外部工具的输出显示在控制台视图中。 在配置外部工具时可使用如 ... -
java的System.getProperty()方法可以获取的值
2011-12-26 14:30 4906java.version Java 运 ... -
java的comparable接口和comparator
2011-12-01 16:24 1668使用这两个接口,用于Collections.sort或Arra ... -
JUnit 4 常用的几个 annotation
2011-11-15 14:15 1016[size=large][size=medium]@Befor ... -
通过APACHE POI操作OFFICE --EXCEL(一)
2011-11-07 18:20 1315一、简介 使用Java程序读写Microsoft Office ... -
键盘数字对应的ASCII码
2011-10-31 16:41 2327keycode 1 = 鼠标左键 keycode 2 = 鼠标 ... -
一段java代码
2011-10-21 17:50 861import java.io.InputStream; im ...
相关推荐
若是下载本地测试需要有修改,包中文件不一定全部用到
java调用ocx控件,jacob,jar和dll文件
Java调用C# dll jacob包类资源.zip
使用JACOB工具调用COM组件 JACOB 就是 JAVA-COM Bridge的缩写,提供... 但是使用JACOB可以先编写COM组件,再在Java中调用,这在许多遗留在系统中COM组件是常用的,因此,使用JACOB对于系统的集成是比较实用的功能。
操作com组件的可以java直接调用vb的dll 或者直接操作word excel等程序
java 通过调用jacob 实现调用windows自带控件 实现文字转语音播放功能!
java 通过jawin 调用dll;
java调用C#封装的dll方法 关于java调用C# 封装的DLL文件的方法 第一种:java利用JNA进行调用 思路:C#源码生成COM组件(dll和tlb文件),再利用C++进行封装,java通过JNA调用C++封装的DLL。 第二种:java利用jacob...
jacob.jar1.20及使用方法 解压后获得3个文件 jacob.jar jacob-1.20-x64.dll jacob-1.20-x86.dll 包含(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf
本视频为自己录制的,莫名奇妙的被csdn删除了N次,真是要命!使用的是jacob方法来使用java语言调用.net的dll文件方法!里面有实例,希望对大家有所帮助!欢迎下载
java通过jacob调用ocx插件,包括配置文档和jacob-1.17-M2.zip包
java的jacob调用OCX java的jacob调用OCX(包含错误的处理)
java操作word之jacob(jacob.dll + jacob.jar),绝对实用
jacob 1.9语音生成文件,jacob x64.dll和jacob.jar 版本为1.9。 jacob.dll放入 C:\Program Files\Java\jdk1.8.0_121\jre\bin jacob.jar通过idea配置到项目dependencies
C++ COM 组件 java + jacob 调用,jacob调用详情请看jacob栏
jacob调用的是vba宏语言 ,代码只包含部分读取功能,若要进行更多操作请查看autocad vba开发手册,
java朗读简单字符串所需的包及dll文件
jacob-1.14.3.dll及使用方法
Java中使用Jacob实现Windows下语音合成并生成音频文件示例代码.rar
利用Jacob库从java调用c# dll的样例程序,实现了从java调用c# dll的简单方案,供大家学习参考。