【问题标题】:How to call Java code from C#?如何从 C# 调用 Java 代码?
【发布时间】:2008-09-24 21:07:00
【问题描述】:

我们开发了一个 Java 应用程序,并希望从 C# 客户端使用该应用程序。该应用程序依赖于 Spring、Log4j、...

什么是最有效的机制 - 从 Java 代码中创建 DLL,... - 来实现这一点?

【问题讨论】:

标签: c# java


【解决方案1】:

IKVM!

真的很棒。唯一的问题是它确实为项目增加了大约 30MB。 log4net 和 Spring .NET 也可用,但如果使用现有代码,请使用 ikvm 路线。

【讨论】:

  • 在最新版本的 IKVM 中,JDK 库被分解为单独的程序集。根据您的需要,您可能不再拥有全部 30MB 的行李。 jdk 核心程序集大约 5 MB。
【解决方案2】:

我是jni4net 的作者,它是 JVM 和 CLR 之间的开源进程间桥梁。它建立在 JNI 和 PInvoke 之上。无需 C/C++ 代码。希望对你有帮助。

【讨论】:

  • 嗨 Pavel,jni4net 框架现在可以在 Linux 环境中工作吗?
  • 谢谢,Pavel,请您推荐一下我可以使用什么来从我的 .net 核心调用 Java。你认为 C++ 包装器可行吗?
【解决方案3】:

或者,您可以在两者之间编写一个 webservice/xmlrpc 层。

我好像记得有一个叫 Grasshopper 的工具可以把你的 .Net 代码编译成 JVM 字节码。

我也听说过关于 IKVM 的好消息

【讨论】:

    【解决方案4】:

    有很多选择,

    1. 套接字

    2. 网络服务

    3. 消息总线

    4. 使用/任何数据库! (如果听起来很傻,请见谅)

    这里有一个可能很方便的讨论:https://gridwizard.wordpress.com/2015/01/14/java-and-dotnet-interop

    真的取决于你正在构建什么!

    【讨论】:

    • OP 明确要求“呼叫”。您确定的所有方法都涉及“发送消息”。最后一个 - 数据库 - 选项可能更不直接,因为它需要轮询临时表。
    • 将使用 proto3 将 gRPC 流添加到列表中。
    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多