gpt4 book ai didi

.net - IKVM C#​​ to Java Interop with Callback 使用 IKVM

转载 作者:行者123 更新时间:2023-12-01 13:04:03 25 4
gpt4 key购买 nike

我已经开始使用 IKVM 将 Java 库转换为 .NET CIL。我可以成功编写一个 C# 程序,该程序引入 (inproc) 翻译后的 Java 程序集作为引用,并调用翻译后的 Java 代码。

我的问题是,有人熟悉如何使用 IKVM 从 Java 调用(回调)到 C# 吗?我一直在寻找好的教程或解释,但还没有看到。

感谢任何帮助。谢谢,

最佳答案

女士们先生们,我想出了我自己的问题。先写代码再说步骤。

Java 类

public class TestClass {
private cli.CSharpLibrary.Library m_lib = null;

public void AddDelegate( cli.CSharpLibrary.Library lib )
{
m_lib = lib;
}

public void FireDelegate()
{
if( m_lib != null )
{
m_lib.ExecuteRunnableDelegate();
}
}

public void PrintInt()
{
System.out.print(23);
}
}

C#类

using ikvm.runtime;
using CSharpLibrary;

namespace CSharp
{
class Program
{
public static void DelegateTarget()
{
Console.WriteLine("DelegateTarget Executed!");
}

static void Main(string[] args)
{
Library lib = new Library();
lib.m_runnableDelegate = new Delegates.RunnableDelegate(DelegateTarget);

TestClass tc = new TestClass();
tc.AddDelegate(lib);
tc.FireDelegate();

}
}
}

1) 编写您的 Java 应用

2) 将您的 *.class 文件转换为 jar 文件 (jar -cf myjar.jar *.class)

3) 将 jar 文件转换为 .NET 程序集 (ikvmc -reference:csharpassembly.dll myjar.jar)

此时应该可以工作。您可以运行 C# 程序,让它调用转换后的 Java 程序,反之亦然。注意 ikvmc 调用中的“-reference”标志。这会在 IKVM 转换 Java 代码时告诉它 csharpassembly.dll 有一些它需要注意的类定义。

关于.net - IKVM C#​​ to Java Interop with Callback 使用 IKVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com