`

C#调用Java类的方法

阅读更多

一、将已经编译后的java中Class文件进行打包;打包命令JAR

如:将某目录下的所有class文件夹全部进行打包处理;

使用的命令:jar cvf test.jar -C com/ .

其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件;

二、到IKVM官方网站下载IKVM需要的组件  http://www.ikvm.net/

  ikvm-0.42.0.3.zip

  ikvmbin-0.42.0.3.zip

  openjdk6-b16-stripped.zip

三、设置路径

解压ikvm-0.42.0.3.zip,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。

四、将java的jar包转换为.dll控件

使用的命令:ikvmc -out:IKVM.dll test.jar

其中IKVM.dll为将要生成的.dll控件文件名;test.jar为之前打包好的jar包文件。

五、在C#项目中添加所需的控件

  1、新建一个C#.NET项目,首先添加一下必须的DLLs

  %IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll

  %IKVM_HOME%\bin\IKVM.Runtime.dll

  %IKVM_HOME%\bin\IKVM.Runtime.JNI.dll

  2、添加已生成的.dll文件

      将之前生成好的.dll文件加载到C#项目中

六、测试

在C#项目中使用java类,其方法同java。但对包的引用使用C#的语法using

 

源代码:

Java源代码:

package com.zht;
//要调用的Java类
public class Test {
   //要调用的Java方法
    public String returnString() {
        return "Hello, zht!";
    }

}

 

C#窗体源代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using com.zht;

namespace KIVMTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Test t = new Test();
            string str = t.returnString();
            MessageBox.Show(str);
        }
    }
}

 

结果:

启动C#窗口后,显示提示窗口,内容为:Hello, zht!

分享到:
评论

相关推荐

    C#调用java程序的方法

    C#调用Java程序的方法是指将Java类转化成dotnet类,在C#项目直接调用。这种方法可以使得C#项目可以调用Java类的方法,从而实现C#和Java之间的交互。 在这个过程中,我们需要使用IKVM(ynamic Runtime ...

    C#调用java类、jar包方法

    在跨平台开发中,有时需要将不同编程语言的组件整合在一起,例如在C#应用中调用Java类或使用Java的jar包。本篇将详细阐述如何在C#环境中实现对Java类的调用以及使用Java的jar包。 首先,要理解C#与Java之间的互操作...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    C#调用JAVA方法

    首先,让我们理解C#调用Java方法的基本原理。这通常涉及到一个中间层,它能够理解两种语言之间的差异并进行转换。一种解决方案是使用IKVM.NET,这是一个开源项目,它实现了Java虚拟机(JVM)和Java类库的.NET框架...

    C#调用Java接口演示

    然而,对于C#调用Java接口,最常用且推荐的方法是使用`Java Native Interface (JNI)`,它允许Java代码调用本地(非Java)代码,并反之亦然。这里我们将使用IKVM.NET,这是一个开源项目,它实现了.NET运行时的Java...

    c#调用java带身份验证webservice

    综上所述,要使用C#调用Java带身份验证的Web服务,你需要生成客户端代理类,设置正确的身份验证头,处理XML响应,并确保具备良好的异常处理机制。这涉及到对.NET框架的理解,以及对XML和身份验证协议的熟悉。通过...

    C#调用java发布的WebService终稿.pdf

    C# 调用 Java 发布的 WebService 终稿 C# 调用 Java 发布的 WebService 是一种常见的跨语言通信方式。在本文中,我们将介绍如何使用 C# 调用 Java 发布的 WebService。 标题解释 C# 调用 Java 发布的 WebService ...

    C#调用JavaWebService(客户端)

    总的来说,C#调用Java WebService的过程涉及到多个技术层面,包括XML序列化、网络通信、数据类型转换以及错误处理。理解这些细节对于实现跨平台的应用集成至关重要。在实际开发中,还需要根据具体项目需求进行适当的...

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

    本主题聚焦于"C#调用java",探讨如何在C#应用中直接调用Java代码,而无需通过生成.NET组件来实现这一目标。这样的做法能带来更高的稳定性和速度。 首先,我们需要理解的是,C#和Java属于两种不同的编程语言,它们...

    C#调用使用java的带soaphead的webservice

    为了调用Java的Web服务,我们需要生成一个客户端代理类。这可以通过“添加服务引用”或手动编写代码来完成。在VS2013中,我们可以在解决方案资源管理器中右击项目,选择“添加服务引用”,然后输入Java Web服务的...

    CSharp-calls-JAVA-program.rar_C#调用java的dll_c# 调用 java sdk_c#调用ja

    7. **调用Java方法**:在C#代码中,通过包装类实例调用Java方法。方法名应与Java中的完全限定方法名相同,包括类名和方法名,同时传递相应的参数。 8. **错误处理**:跨语言调用可能会遇到各种问题,如类型转换错误...

    C#调用Java类的方法[文].pdf

    标题中的"C#调用Java类的方法"涉及到的是跨平台编程技术,主要介绍如何在C#环境中调用已有的Java类库。这篇文档可能是为了帮助开发者理解如何整合两种不同语言的代码,实现更灵活的开发。 描述简短地指出,通过打包...

    c#调用Java webService的专题(一)

    本文将深入探讨如何使用C#调用Java WebService,这是实现.NET与Java平台间互操作性的一个重要方式。我们将首先理解WebService的基本概念,然后详细讲解C#中如何通过.NET Framework的SOAP客户端代理类来调用Java ...

    c# 调用java类库

    这种技术允许C#代码直接调用Java方法,就像调用本地.NET库一样,实现了.NET和Java平台之间的无缝集成。 BioJava是一个开源项目,专注于生物信息学的Java库。它提供了处理生物学数据的工具,如DNA、蛋白质序列以及...

    java调用c#样例

    总之,这个示例提供了Java通过Jacob库调用C# DLL的方法,这对于那些需要在Java应用中利用.NET功能的开发者来说,是一个非常有价值的参考资源。通过理解Jacob的工作原理和实践中的调用流程,可以有效地实现Java和.NET...

    ASP.net 中用C#调用Java web service 图解教程

    该框架提供了许多有用的类和方法来帮助我们实现 Web Service 的调用和提供。 在 ASP.NET 中,我们可以使用以下步骤来实现 Web Service 的客户端和服务器端: * 创建 Web Service 的服务器端 * 生成 Web Service 的...

    java调用C#封装的dll方法

    ### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...

    jni4net C# java 相互调用

    在C#中调用Java代码时,你需要定义一个接口,该接口映射到Java中的类,然后使用`CreateJavaProxy`方法创建Java对象的代理。同样,在Java中调用C#代码时,你需要定义一个.NET接口,并在Java代码中使用`CreateNetProxy...

Global site tag (gtag.js) - Google Analytics