首页 > 代码库 > C#和Java交互相关研究

C#和Java交互相关研究

之前总觉得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。

 

以上是小弟的分析,如果说的不对,请各位路过大神指正!

谢谢!

<iframe id="google_ads_frame2" vspace="0" height="250" marginHeight="0" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3447371224873639&output=html&h=250&slotname=8660799060&adk=1970350646&w=300&lmt=1401456390&flash=0&url=http%3A%2F%2Fwww.cnblogs.com%2Fgc2013%2Fp%2F3760928.html&dt=1401456392476&shv=r20140520&cbv=r20140417&saldr=sb&correlator=1401456392217&frm=20&ga_vid=1304086684.1400769066&ga_sid=1401446522&ga_hid=1166579076&ga_fc=1&u_tz=480&u_his=350&u_java=1&u_h=768&u_w=1364&u_ah=740&u_aw=1364&u_cd=16&u_nplug=0&u_nmime=0&dff=verdana&dfs=12&adx=0&ady=35234&biw=314&bih=74&eid=317150304&oid=3&rx=0&eae=0&docm=9&vis=0&fu=0&ifi=2&xpc=pF9swl9iRM&p=http%3A//www.cnblogs.com&dtd=135" frameBorder="0" width="300" allowTransparency="true" name="google_ads_frame2" marginWidth="0" scrolling="no" hspace="0"></iframe><iframe id="google_ads_frame3" vspace="0" height="250" marginHeight="0" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3447371224873639&output=html&h=250&slotname=8660799060&adk=1970350646&w=300&lmt=1401456390&flash=0&url=http%3A%2F%2Fwww.cnblogs.com%2Fgc2013%2Fp%2F3760928.html&dt=1401456392620&shv=r20140520&cbv=r20140417&saldr=sb&prev_slotnames=8660799060&correlator=1401456392217&frm=20&ga_vid=1304086684.1400769066&ga_sid=1401446522&ga_hid=1166579076&ga_fc=1&u_tz=480&u_his=350&u_java=1&u_h=768&u_w=1364&u_ah=740&u_aw=1364&u_cd=16&u_nplug=0&u_nmime=0&dff=verdana&dfs=12&adx=304&ady=35484&biw=314&bih=74&eid=317150304&oid=3&rx=0&eae=0&docm=9&vis=0&fu=0&ifi=3&xpc=muRzIVidIy&p=http%3A//www.cnblogs.com&dtd=44" frameBorder="0" width="300" allowTransparency="true" name="google_ads_frame3" marginWidth="0" scrolling="no" hspace="0"></iframe>