`

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。

 

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

谢谢!

 

 

分享到:
评论

相关推荐

    C#和java 之间基于Socket的通信

    本话题主要探讨了两种常用编程语言——Java和C#之间如何利用Socket进行通信。Socket是网络编程的基本接口,允许应用程序通过网络发送和接收数据。以下是关于"Java和C#之间基于Socket的通信"的详细知识点: 1. **...

    C#调用java程序的方法

    这种方法可以使得C#项目可以调用Java类的方法,从而实现C#和Java之间的交互。 在这个过程中,我们需要使用IKVM(ynamic Runtime Infrastructure for the Java Platform)来将Java类转化成dotnet类。IKVM是一个开源...

    C#和Java实现互通的RSA&DES加解密算法

    C#和Java中都有内置的类库支持RSA加密,如C#的System.Security.Cryptography.RSACryptoServiceProvider和Java的java.security.KeyPairGenerator与java.security.Signature等。 接下来,我们讨论DES(Data ...

    C#调用Java接口演示

    本示例主要探讨的是如何使用C#调用Java接口,实现不同编程语言之间的交互。C#和Java都是广泛应用的编程语言,它们各自拥有丰富的库和生态系统,但有时需要在两者之间建立桥梁,以利用各自的优点。本文将详细介绍这一...

    DES 加密 JAVA与C# 交互 绝对可用

    标题中的“DES加密JAVA与C#交互绝对可用”意味着我们将探讨如何在Java和C#之间使用DES(Data Encryption Standard)加密算法进行数据安全传输。DES是一种广泛应用的块密码,使用56位密钥对64位的数据块进行加密。...

    C#RSA加密与JAVA解密,实现相互通信

    "C# RSA加密与JAVA解密,实现相互通信"的主题聚焦于如何利用RSA公钥/私钥加密算法在C#和Java两个不同的编程环境中实现安全的数据交换。RSA是一种非对称加密算法,它使用一对密钥——公钥和私钥,公钥用于加密,私钥...

    整合java和c#_Javac#交互_

    标题:“整合java和c#_Javac#交互_”意味着我们将讨论如何在Java和C#之间建立桥梁,实现代码共享、数据交换以及服务调用。这两个语言分别由不同的公司(Sun Microsystems,现为Oracle,和Microsoft)开发,它们有着...

    C# JavaRSA加密解密的交互

    本文将深入探讨如何在C#和Java之间实现RSA加密解密的交互。RSA是一种非对称加密算法,它基于两个密钥——公钥和私钥,用于确保数据在传输过程中的安全性。 首先,我们关注"JAVA产生秘钥"这一环节。在Java中,我们...

    C#与javacript数据交互

    在Web开发中,C#(通常用于服务器端)和JavaScript(主要用于客户端)的交互是常见的需求。这两种语言虽然在不同的环境中运行,但可以通过多种方式实现数据交换和功能调用。 ### 1. JavaScript访问C#函数 #### ...

    c#调用java带身份验证webservice

    在这个案例中,我们将重点关注C#与Java之间的交互,特别是涉及安全性的身份验证过程。 首先,让我们了解C#调用Web服务的基本原理。C#主要通过.NET框架中的ASMX或WCF(Windows Communication Foundation)客户端代理...

    C#调用java直接调用无需生成.net组件

    首先,我们需要理解的是,C#和Java属于两种不同的编程语言,它们运行在不同的虚拟机上:C#运行在.NET Framework或.NET Core上,而Java则在Java虚拟机(JVM)上。然而,通过一些技术手段,我们可以让这两种语言进行...

    Netty实现Java服务端和C#客户端联通

    标题中的“Netty实现Java服务端和C#客户端联通”是指使用Netty作为Java服务器框架,与C#客户端(使用DotNetty库)进行通信的一种技术实现。这涉及到跨平台的网络通信,以及两个不同编程语言间的交互。 Netty是Java...

    java C# 工具

    总结起来,这个压缩包包含的工具主要服务于C#与SQLite数据库的交互以及Java环境的安装更新,涵盖了跨平台开发和数据库管理的基础需求。对于使用C#的开发者,`System.Data.SQLite.DLL`是一个实用的数据库连接库;对于...

    JAVA通过JNI调用C#dll的整个项目工程

    Java通过JNI调用C# DLL是一个跨平台、跨语言的技术实践,主要应用于需要利用Java的稳定性和C#的高性能场景。JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。C# ...

    C# 对接 Java 3des md5WithRsa

    在IT行业中,跨平台通信和数据安全是两个重要的议题,特别是在C#和Java这两种不同的编程语言之间进行数据交互时。本篇文章将详细讲解如何在C#中实现与Java的3DES加密以及MD5withRSA签名的对接。 3DES(Triple Data ...

    java调用c#样例

    在IT行业中,跨平台通信是一个常见的需求,尤其是在Java和.NET框架之间。本示例主要探讨如何使用Java调用C#编写的DLL文件,...通过理解Jacob的工作原理和实践中的调用流程,可以有效地实现Java和.NET之间的跨平台交互。

    C#调用JavaWebService(客户端)

    在这种场景下,Java创建了一个WebService,而C#作为客户端需要与之交互。 1. **Java WebService创建**: Java开发者通常使用JAX-WS(Java API for XML Web Services)框架来创建WebService。这包括编写一个Java类...

    jni4net C# java 相互调用

    而jni4net则为.NET Framework提供了这样的桥接,使得C#应用程序能够无缝地与Java应用进行交互。 首先,让我们详细了解一下jni4net如何工作。在C#中,你可以通过创建一个`Bridge`实例并使用`Start`方法来初始化Java...

    RSA加密算法实现以及C#与java互通加解密

    ### RSA加密算法实现以及C#与Java互通加解密 #### 一、RSA算法简介 RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir 和 Leonard Adleman 在1977年提出,并以其三人的名字首字母命名。RSA算法的安全性基于...

Global site tag (gtag.js) - Google Analytics