当前位置:实例文章 » C#开发实例» [文章]Java调用C#

Java调用C#

发布人:shili8 发布时间:2023-07-18 14:22 阅读次数:232

在Java中调用C#代码是一种常见的需求,特别是在跨平台开发或者与已有的C#代码进行集成时。下面是一个简单的示例,展示了如何在Java中调用C#代码。

首先,我们需要创建一个C#类库项目。在该项目中,我们创建一个名为Calculator的类,该类包含一个简单的加法方法。

csharp
using System;

namespace CalculatorLibrary
{
    public class Calculator
    {
        public int Add(int a int b)
        {
            return a + b;
        }
    }
}


接下来,我们需要将C#类库编译为一个可供Java调用的DLL文件。可以使用Visual Studio或者命令行工具进行编译。

在Java中,我们需要使用JNI(Java Native Interface)来调用C#代码。首先,我们需要加载C# DLL文件。

java
public class Main {
    static {
        System.loadLibrary(CalculatorLibrary);
    }

    public static void main(String[] args) {
        // 调用C#方法
        int result = Calculator.add(2 3);
        System.out.println(Result:  + result);
    }

    // 声明C#方法
    public static native int add(int a int b);
}


在Java代码中,我们使用`System.loadLibrary`方法加载C# DLL文件。然后,我们声明一个`add`方法,该方法是一个本地方法,用于调用C#的加法方法。

接下来,我们需要生成一个包含JNI方法的头文件。可以使用`javah`命令来生成头文件。

shell
javah -jni Main


生成的头文件将包含一个`Java_Main_add`方法的声明,该方法将在C#代码中实现。

最后,我们需要在C#代码中实现JNI方法。

csharp
using System;
using System.Runtime.InteropServices;

namespace CalculatorLibrary
{
    public class Calculator
    {
        [DllImport(CalculatorLibrary.dll)]
        public static extern int add(int a int b);
    }
}


在C#代码中,我们使用`DllImport`特性来声明JNI方法。该特性指定了DLL文件的名称和方法的签名。

现在,我们可以编译并运行Java代码,它将调用C#的加法方法,并打印结果。

需要注意的是,这只是一个简单的示例,实际的调用可能涉及更复杂的数据类型和参数传递。此外,还需要确保C#代码和Java代码的运行环境是兼容的。

希望这个示例能够帮助你理解如何在Java中调用C#代码。

相关标签:c#java开发语言
其他信息

其他资源

Top