【问题标题】:Call Java Method from API in .NET在 .NET 中从 API 调用 Java 方法
【发布时间】:2021-01-19 11:39:59
【问题描述】:

我在 jar 文件中有一个 Java API,其中包含来自其他 jar 文件的一些依赖项。

有没有办法从这个 API 调用特定的方法,比如使用 .NET 中的 PInvoke?

【问题讨论】:

    标签: c# java pinvoke


    【解决方案1】:

    给你 :) 我自己用过,对实现非常满意。

    IKVM: Using Java API's in .NET Applications

    • (1) 如果您只需要一些库 来自 Java。

    • (2.1) 如果您有权访问 代码。

    • (2.2) 不得已, 将 Java 动态加载到 .Net (翻译)

    【讨论】:

    • 使用IKVM,你知道如何指定其他jar文件(类路径)吗?
    • 您可以使用ikvm.net/userguide/ikvmc.html 声明您可以提供多个 jar 文件 :)
    • 嗨,我正在尝试转换的 API 用于处理 wav 文件,当它调用 javax.sound.sampled.AudioSystem.getAudioInputStream(File file) 时它会在某个地方引发异常。异常消息是“无法从输入文件获取音频输入流”。我已经用 Java 中的相同文件调用了相同的方法,它工作正常,这在 .NET 中导致了这种情况。你知道会是什么吗?权限有问题?
    • @aumanets 我可能是有权限的人,但也可能是 ikvm 的转换。不幸的是,我无法帮助您:/ 尝试在 ikvm 网站上提交错误报告。
    • 链接已失效..
    【解决方案2】:

    我认为 .net 和 java 互操作不是一件容易的事。也许您可以使用套接字,并使用它们将消息从一个环境发送到另一个环境。不过,这只是一个想法。

    编辑:

    我发现一些库说他们可以做到这一点:

    http://www.jnbridge.com/

    http://www.codeproject.com/KB/dotnet/Espresso.aspx

    【讨论】:

      【解决方案3】:

      您可以使用CORBA 从 .NET 中“调用”java 方法。

      对于 .NET here,您可以找到一些 CORBA 库。

      Java SDK 包含 CORBA 功能,因此您无需下载第三方库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-09
        • 2013-11-26
        • 1970-01-01
        相关资源
        最近更新 更多