mj_*_*mj_ 3 .net sockets ikvm hosts-file
我已经开始使用 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);
}
}
Run Code Online (Sandbox Code Playgroud)
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
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 有一些需要注意的类定义。
| 归档时间: |
|
| 查看次数: |
2395 次 |
| 最近记录: |