在 .NET 中从 API 调用 Java 方法

Posted

技术标签:

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

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

有没有办法从这个 API 调用特定的方法,比如使用 .NET 中的 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 功能,因此您无需下载第三方库。

【讨论】:

以上是关于在 .NET 中从 API 调用 Java 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在asp.net核心中从客户端调用web api方法?

如何在 Spring Boot 应用程序中从 Api 网关(Zuul)调用外部服务(非 MSA)

无法定期在 IOS 中进行后台 API 调用以推送应用程序中从 BLE 设备接收的数据

如何在 API 函数调用上下文中从数据表中获取搜索的行

Android在C ++ JNI代码中从另一个活动类调用Java函数

如何在 asp.net core v 2.0 中从 javascript 调用 PageModel 方法