- 浏览: 219251 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (132)
- 企业开发 (46)
- SSO (5)
- CAS (1)
- SOAP (8)
- Oracle (5)
- Eclipse IDE (3)
- 事业 (14)
- Lucene (4)
- 课间十分钟 (2)
- maven (1)
- CMS (5)
- 设计模式 (0)
- 软件开发流程 (0)
- midas/GTS (1)
- Java Hibernate (1)
- SqlServer2005 (1)
- Jquery (1)
- Java (1)
- Java Maven Pom (1)
- Java Velocity (1)
- Jira 项目管理 (2)
- 软件开发 需求分析 (1)
- 单点登录 (1)
- 项目管理 (1)
- 时间管理 (1)
- UI 交互设计流程 (1)
- SVN (1)
- css w3c (1)
- ASP.NET FrameWork (1)
- Oracle Session Process (1)
- tomcat (1)
- Web (0)
最新评论
-
fendou3754:
程序可以运行,不过对于中文的搜索,貌似要将txt文件存为UTF ...
Lucene开发实例--代码篇 -
ewf_momo:
...
Lucene开发实例--代码篇 -
dbh0512:
我的是一段文本 每次只能创建一个索引 但是搜索不到 求解答
Lucene开发实例--代码篇 -
a496649849:
终于安装了 多谢
m2安装Eclipse3.6.1(eclipse-jee-helios-SR1-win32.zip)问题 -
lyj57:
那个"E:\\renwg\\茶余饭后\\新建文件夹& ...
Lucene开发实例--代码篇
背景:
近日一个java的项目,客户要求项目中必须使用其提供的加密机制,扔给了两个.net写的DLL。网络上搜了一圈也没找到啥东西,甚至看到人扬言此事绝无可能。郁闷当中考虑了一个思路。用C#做一个Com,调用客户提供的DLL实现加密解密的方法,然后提供给java使用。经过一番捣腾,最后证实可行。
环境与工具:
1、.net framework 3.5 C#
2、java jdk1.6, Tomcat 7.0
3、jacob-1.15-M3
实现例子:
一、C# 制作Com组件
新建一个Class 项目,取名TestCom
打开 Project--> Properties菜单 在Application标签中打开 Assembly Information 将Make assembly Com-Visible一项选中。再切换到Build标签将 Register for COM interop一项选中。
Guid的生成:打开Visual Studio Command Prompt 输入guidgen 命令调出工具。类型选择Registry Format,点击New Guid,然后COPY出来。
[DispId(1)]为函数的标识。如果有多个函数可相应的在函数前面加[DispId(2)], [DispId(3)]…
设置强名称:打开Visual Studio Command Prompt 输入:sn -k TestComkey.snk 生成TestComkey.snk 文件
打开 Project--> Properties菜单 在Signing标签中选中 Sign the assembly,选择刚刚生成的强名称文件TestComkey.snk
编译程序Debug目录中会生成 TestCom.dll 和TestCom.tlb
手工注册Com方法:
打开Visual Studio Command Prompt进入Debug目录,运行命令注册:
regasm TestCom.DLL /tlb:TestCom.tlb
gacutil -i TestCom.DLL (执行这个命令需要TestCom.DLL 具有强名称)
二、java 调用 Com
部署jacob
1、在开发环境中引入jacob.jar
2、拷贝jacob-1.15-M3-x86.dll 文件到 C:\Windows\System32目录,如果是Web应用的话还需要拷贝到jdk1.6.0_23\bin目录(jdk安装目录下的bin目录)
java调用代码
近日一个java的项目,客户要求项目中必须使用其提供的加密机制,扔给了两个.net写的DLL。网络上搜了一圈也没找到啥东西,甚至看到人扬言此事绝无可能。郁闷当中考虑了一个思路。用C#做一个Com,调用客户提供的DLL实现加密解密的方法,然后提供给java使用。经过一番捣腾,最后证实可行。
环境与工具:
1、.net framework 3.5 C#
2、java jdk1.6, Tomcat 7.0
3、jacob-1.15-M3
实现例子:
一、C# 制作Com组件
新建一个Class 项目,取名TestCom
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace TestCom { [Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")] public interface IEncrypt { [DispId(1)] string GetEncrypt(string str,string str2); } [Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"), ClassInterface(ClassInterfaceType.None)] public class Encrypt:IEncrypt { public Encrypt(){} public string GetEncrypt(string str,string str2) { return "测试 | "+str+"|"+str2; } } }
打开 Project--> Properties菜单 在Application标签中打开 Assembly Information 将Make assembly Com-Visible一项选中。再切换到Build标签将 Register for COM interop一项选中。
Guid的生成:打开Visual Studio Command Prompt 输入guidgen 命令调出工具。类型选择Registry Format,点击New Guid,然后COPY出来。
[DispId(1)]为函数的标识。如果有多个函数可相应的在函数前面加[DispId(2)], [DispId(3)]…
设置强名称:打开Visual Studio Command Prompt 输入:sn -k TestComkey.snk 生成TestComkey.snk 文件
打开 Project--> Properties菜单 在Signing标签中选中 Sign the assembly,选择刚刚生成的强名称文件TestComkey.snk
编译程序Debug目录中会生成 TestCom.dll 和TestCom.tlb
手工注册Com方法:
打开Visual Studio Command Prompt进入Debug目录,运行命令注册:
regasm TestCom.DLL /tlb:TestCom.tlb
gacutil -i TestCom.DLL (执行这个命令需要TestCom.DLL 具有强名称)
二、java 调用 Com
部署jacob
1、在开发环境中引入jacob.jar
2、拷贝jacob-1.15-M3-x86.dll 文件到 C:\Windows\System32目录,如果是Web应用的话还需要拷贝到jdk1.6.0_23\bin目录(jdk安装目录下的bin目录)
java调用代码
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try{ ActiveXComponent dotnetCom = null; dotnetCom = new ActiveXComponent("TestCom.Encrypt"); Variant var = Dispatch.call(dotnetCom,"GetEncrypt","哥是第一个参数","哥是第二个参数"); String str = var.toString(); //返回值 } catch (Exception ex) { ex.printStackTrace(); } } }
发表评论
文章已被作者锁定,不允许评论。
-
Velocity浅析及与Jsp、Freemarker对比
2011-08-21 18:10 878Velocity 是一个基于java ... -
Google首页电吉他Doodle源代码
2011-06-10 12:22 991为了纪念电吉他之父莱斯·保罗(Les Paul,1915 ... -
Caused by: javax.imageio.IIOException: Can't create cache file!
2011-05-23 20:17 3616验证码 无法显示问题。 错误日志为: Cause ... -
配置Resin 3+iis 支持JSP且共享80端口
2011-05-20 17:21 2323软件环境 操作系统:win2003 SDK:JDK 1.6 服 ... -
大型网站架构不得不考虑的10个问题
2011-05-17 21:28 905这里的大型网站架构 ... -
This class does not support SAAJ 1.1, weblogic?
2011-05-15 19:21 2031项目 将要迁移到 Weblogic 10.3. ... -
javax.xml.ws.soap.SOAPFaultException: This class does not support SAAJ 1.1
2011-05-15 18:24 2006]] Root cause of ServletExcepti ... -
Date 与 Calendar 计算时间及天数
2011-03-09 21:19 1606有时我们会比较时间,例如:7天前,7天后。 虽然 ... -
m2安装Eclipse3.6.1(eclipse-jee-helios-SR1-win32.zip)问题
2011-02-25 15:36 23151. m2eclipse------------------- ... -
Eclipse is running in a JRE, but a JDK is required 解决方法
2011-02-25 11:54 1557装Maven后每次启动出现警告信息: Eclipse is ... -
Apache Tomcat Tomcat5 服务因 0 (0x0) 服务性错误而停止”问题的解决
2011-02-17 20:38 1508今天又找到一个解决方法,应该比较通用。就是删除服务再重新安装。 ... -
随机产生26个英文字母
2010-12-28 16:45 1835char paramChar = (char)(Math ... -
Java字符串反转问题
2010-12-28 14:18 930java反转:可以使用 StringBuffer中的 r ... -
Java解析XML文件的四种方法
2010-12-14 21:15 6801.介绍 1)DOM(JAXP Crimson ... -
提供Java性能的十一个用法
2010-12-14 15:44 835Java语言习惯用语 1。循环 ■ 在重要的循环里,消除循 ... -
Java中的DOS下常用命令积累
2010-12-13 18:33 10311:解压jar包: xf org.eclipse.swt.w ... -
优化C盘
2010-12-08 16:44 906主要讲讲Windows操作系 ... -
Win XP使用100%网速的方法
2010-12-08 16:17 1037开始菜单里点击”运行”,输入gpedit. ... -
现实生活即将被虚拟化
2010-12-08 14:20 1134往往好的创 ... -
JAVA程序员软件开发工具下载地址总结
2010-12-08 12:49 12861:JDK6 update23 : http://www.o ...
相关推荐
### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...
5. **C#调用Java代码**: 在C#项目中,你可以像调用任何其他.NET库一样调用转换后的dll文件中的方法。不过,由于是跨平台调用,需要注意一些类型映射和异常处理的问题。 6. **测试与调试**: 完成上述步骤后,务必...
- C# DLL的源码,展示了如何定义公共接口和方法供Java调用。 - Java调用DLL的源码,展示了如何使用JNA或IKVM.NET等工具进行调用。 - 测试代码,用于验证Java成功调用C# DLL并执行预期功能。 要正确使用这些源码,你...
提供的`java调用.NET方法.wmv`视频文件可能是作者录制的教程,展示了具体的操作过程和示例代码,对于初学者来说,观看此类视频教程往往能更直观地理解如何使用JACOB。 总之,通过JACOB库,Java开发者可以利用.NET ...
5. **调用DLL方法**:现在,你可以通过实例化实现接口的类并调用其方法来调用C# DLL的功能了。 除了JNA,还可以使用其他库如JNI或者通过创建一个中间层(如C++或C)来桥接Java和C#。然而,这些方法相比JNA通常更...
4. **调用DLL函数**:现在你可以像调用Java方法一样调用DLL函数了。例如: ```java int result = myDLL.AddNumbers(5, 3); System.out.println("Result: " + result); ``` 5. **处理错误**:在调用DLL函数时,...
另一个文件"Jacob_NET"可能是一个示例的C# DLL,或者包含与Java调用C#相关的.NET项目文件,用于演示如何创建C# DLL并与Java集成。 在实际操作中,Java开发者需要以下步骤来调用C# DLL: 1. **配置Jacob**:在Java...
Java调用C# DLL的方法简介 在跨平台的软件开发中,有时我们需要在Java应用程序中调用由C#编写的动态链接库(DLL)。这通常涉及到两种主要的技术:JNI(Java Native Interface)和第三方工具。这篇知识文章将详细介绍...
Java调用OCX控件是跨平台编程中的一项技术挑战,因为OCX(Object Linking and Embedding Control)是微软Windows环境下的组件对象模型(COM)控件。然而,通过第三方库如Jacob(Java和COM的桥梁),Java开发者能够在...
### Java调用DLL:JNative概述 在Java项目中,有时候需要调用本地系统的动态链接库(DLL)来实现特定的功能。传统的做法是通过Java Native Interface (JNI)来进行调用,但这往往涉及到复杂的配置和繁琐的过程。为了...
### JAVA调用C# DLL文件的关键步骤和技术细节 #### 一、C#编写COM组件 在实际工作中,可能需要在不同编程语言之间进行交互。例如,一个基于Java的应用程序可能需要调用用C#编写的DLL文件来实现某些功能。这通常...
1. Java调用DLL的原理和方法,包括JNI和JNA的使用。 2. 如何在Java中通过JACOB等工具与OCX控件进行交互。 3. "EdisonSmsGw.ocx"的具体应用,可能涉及到短信服务的实现。 4. 实际的Java代码示例,供学习和参考。 ...
标题"JAVA调用C++/C#的DLL"涉及到的技术点主要集中在Java Native Interface(JNI)上,这是一种允许Java代码与其他编程语言(如C++或C#)进行交互的标准机制。下面我们将深入探讨这一主题。 首先,JNI是Java平台的...
使用IKVM.NET,你可以将Java的.jar文件转换为.NET的DLL,然后在C#中直接引用和调用。这种方法避免了生成.NET组件的步骤,但可能需要处理类型映射和兼容性问题。 3. **Remoting/Thrift/RPC**: 通过网络通信协议,...
在IT行业中,跨语言通信是一项常见的任务,尤其是在大型系统中,不同组件可能由不同语言编写。...提供的"Java调用C#的DLL实现方案.docx"文档应该会详细解释这些方法的步骤和示例代码,建议仔细阅读。
标题"JNA方式实现Java调用dll的必用jar包"指的是使用JNA库来调用Windows平台上的动态链接库(.dll文件)所需的Java类库。这个"jna5.jar"文件是JNA的一个版本,其中包含了所有必要的组件,使得Java程序能够通过JNA...
在本案例中,我们将探讨如何利用SWIG在Java和C#中调用由C++编写的动态链接库(DLL)。VS2012是Visual Studio 2012的缩写,是一款由Microsoft提供的集成开发环境,用于创建Windows应用、Web应用、移动应用等。 首先,...