在 .NET 中从 API 调用 Java 方法
Posted
技术标签:
【中文标题】在 .NET 中从 API 调用 Java 方法【英文标题】:Call Java Method from API in .NET 【发布时间】:2011-05-08 15:05:19 【问题描述】:我在 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 方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 应用程序中从 Api 网关(Zuul)调用外部服务(非 MSA)
无法定期在 IOS 中进行后台 API 调用以推送应用程序中从 BLE 设备接收的数据