之前总觉得C#和Java可以交互应用,但是由于时间以及其他方面的原因,一直没有调研。今天抽空搜了一下,终于折腾出来了。
以下是我自己就C#和Java整合的一些提问和分析,如果有不对的地方,请路过的各位大虾给予指出。3Q!
问题来了:
1、C#和Java如何整合?
2、为什么C#(.Net)要和Java整合?
3、Java和C#整合时,Java主要扮演什么角色?C#扮演什么角色?
答案一一揭晓:
1、C#和Java整合大致有4条路可以走。
1.1 把Java包转换为DLL或者EXE后注册为com组件,之后调用;
1.2 使用web service;(http://www.codeproject.com/Articles/32313/How-to-invoke-Java-web-service-in-ASP-net-using-C)
1.3 使用中间件;比如一个商业的中间件:http://j-integra.intrinsyc.com/;
1.4 使用 IKVM.NET,这是一个在.net 下实现的Java VM,所以在经过一个转换后,直接跑Java的东西;
(以上4点,是我在网上搜的)
我主要说第四点:使用IKVM.NET。
a:下载ikvm-0.40.0.1.zip;ikvmbin-0.40.0.1.zip;openjdk6-b12-stripped.zip;
解压ikvm-0.40.0.1.zip,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。
b:建立一个JavaProject,自定义包、类、需要透露给外界的方法,然后、将这个JavaProject打包成jar文件。(eclipse和myeclipse都自带的,或者你可以显摆一下,用黑框框敲几个代码整)。
c:狸猫换太子:jar>>dll
打开黑框框(即:win+r,cmd,进入到%IKVM_HOME%\bin的目录下),
执行:ikvmc -out:dllFileNameOrPath.dll javaFileNameOrPath.jar
此时,就会在%IKVM_HOME%\bin目录下或者指定的Path下,会出现一个dllFileNameOrPath.dll文件,置于你的.Net项目中,添加引用,与此同时,请将
%IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll
%IKVM_HOME%\bin\IKVM.Runtime.dll
%IKVM_HOME%\bin\IKVM.Runtime.JNI.dll
添加到你的.Net项目中,切记!
其中,using 后面跟java类的包名。
2、C#和Java整合,不,应该是.Net和Java整合。为啥要整合?
在业间,有人士称,.Net开发除服务层以外的,开发速度快,效率高。而Java做后台服务,安全性、可扩展性高。所以才有牛人将两者整合。目前.Net和Java整合技术的应用,算是一个新旗帜,但目前已经被应用于实际开发了。
3、正如2所说,.Net和Java整合,Java主要承担DAL,也就是和DB进行主要的交互,以及其他通信。而.Net主要承担BLL。
以上是小弟的分析,如果说的不对,请各位路过大神指正!
谢谢!
相关推荐
C# JavaRSA加密解密的交互 JAVA产生秘钥 C#加密
DES 加密 JAVA与C# 交互 绝对可用 注意编码方式UTF-8
C#代码与javaScript函数的相互调用
java and c# Englidsh book
C#实现RSA加密,JAVA进行解密,实现JAVA与C#的相互通信
java C# PHP 支付宝微信支付api接口 以及详细接口文档和demo
对于Excel表的读取是很频繁的一件事情,主要是用来记录各种数据,各个平台可能有很多方式方法,比如Android,你可以插件,也可以用第三方Java开发,打包成Plugin下用的.dll包,再C#和Java交互实现Excel读取(比较麻烦...
java md5的签名加密 和 C#的签名加密 Java开发或C#开发 Java和C#交互开发都能用的接口签名安全防护 自己java多年开发,大型项目中使用的接口安全措施
需要与C#客户端通讯,于是开始研读C#开发语言,希望能够写出与Java通讯的客户端代码,以测试本人的游戏服务端的通讯功能,以及确定通用的通讯协议(与Java和C#,以及C/C++等语言交互)。 当阅读到C#的代理、事件、...
wpf 加载ChromiumWebBrowser 浏览器 与js交互 发消息同信
C# 三菱PLC FX5U 通信DEMO源代码 工程现场使用 非常值得借鉴学习
在unity中接入sdk或者定制一些功能时,需要调用系统接口。安卓手机实际操作中,也就是Unity与android相互调用。我们在Unity中使用c#,android中使用java。
C#是从C和C++发展而来,它继承了C++和Java语言的优点,是面向对象的高级程序设计语言,它具有功能强大和语言简洁高效、与Web技术紧密结合、完整的安全和错误处理机制等特点。C#是Microsoft .Net的核心编程语言,C#...
websocket前端页面与后台交互的例子,解压文件后,用idea导入项目,启动WebsocketServer类,接着用浏览器打开websocket.html页面,会看到建立连接,然后在发送框输入{"id":"1","type":"yes"},返回666,输入其他信息...
3.)集成测试:将各个模块集成到一起进行测试,以验证系统的交互和功能。常用的集成测试框架有Selenium、Appium等。 4) 性能测试:通过模拟多种负载情况,测试系统的性能和响应时间。 5) 安全测试:测试系统的安全...
前阵子学密码学时老师布置的作业,是基于AES加密算法的CRT加密,我用C#写的,界面比较简单,不支持文件加密,即只是通过输入输出框进行交互,加密解密均可。大家可是拿出适当地参考一下。
目前医院和省中台接口交互,一般使用标准的国密算法SM2和SM4进行签名和加密,基于此提供可直接使用的SDK包,目前提供JAVA、C#和Go三个版本。支持微信和支付宝各个渠道的国家医保移动支付对接。 有需要完整项目源码,...
Java RSA私钥 pkcs1转pkcs8;适用于Java与C#程序交互时使用
使用AJAX向ECharts送入MySQL中的数据
它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,采用完全独立于编程语言的文本格式来存储和表示数据。 JSON与XML非常相似,都是用来存储数据的,并且都是基于纯...