在java中使用C# dll [重复]
Posted
技术标签:
【中文标题】在java中使用C# dll [重复]【英文标题】:Using C# dll in java [duplicate] 【发布时间】:2012-07-25 10:29:01 【问题描述】:我试图在 c# 中使用外部 .dll 文件编码,在我的 Java 应用程序中,我对 dll 的了解是它包含我们可以使用的函数的接口,我可以将 dll 加载到我的 java 应用程序中,但是我怎么能使用里面的接口吗?我不知道 JNI 在这种情况下如何提供帮助。请帮忙。
【问题讨论】:
JNI 仅适用于本机库,不适用于托管代码。 【参考方案1】:我怀疑您需要使用 Java/COM 桥接器,例如 JACOB 或 Java Native Access(您可能必须编写一个桥接器,因为 JNA 用于 native 访问仅)。
更多详情请见this SO answer。
【讨论】:
我们可以使用 JNA java 7 而不是 6 对吗?【参考方案2】:您可以使用Robert Giesecke 编写的项目模板从您的C# DLL 创建本机导出。这允许您在 C# DLL 中创建本机 C 风格的 API 导出,并从 Java 或几乎任何其他语言调用它们。向下滚动到非托管导出库文件的页面底部。
或者,您可以使用ComVisible
创建一个 COM 类并从 Java 访问它。
【讨论】:
我应该将使用 ComVisible 的类放在 dll 文件中,然后在 java 应用程序中使用它吗?如果是,我应该如何导入并调用它? 是的。这是an example。您还需要将 DLL 标记为 COM Visible。阅读this question 了解更多信息。 Brian Agnew 的回答涵盖了在 Java 中使用 COM。以上是关于在java中使用C# dll [重复]的主要内容,如果未能解决你的问题,请参考以下文章