【问题标题】:What is the most efficient(fastest) way of passing data from C++ to Java? [closed]将数据从 C++ 传递到 Java 的最有效(最快)方式是什么? [关闭]
【发布时间】:2016-05-12 13:31:24
【问题描述】:

将数据从 C++ 传递到 Java 的最有效方法是什么?

Java 应用程序需要调用 C++ 应用程序来检索数据。

我可以看到以下实现方式:

  1. 使用 JNI
  2. 使用基于文件的方法
  3. 使用 SWIG

我目前的想法是使用JNI。我在提交之前是否错过了更好的方法?

【问题讨论】:

  • 请定义效率。为了速度,或者易于使用和维护代码。
  • 效率只适用于速度对吧?否则我会要求最简单的方法:)
  • “效率只适用于速度对吗?” 不,这完全取决于您的实际需求优先级。
  • 两种方法是三种最常用的方法...
  • 也许我没有完全理解 SWIG 的含义,但与 JNI 调用 API 的含义不一样吗? (调用 API 允许您将 JVM 嵌入到 C 或 C++ 程序中。这比使用 JNI 仅从 Java 程序中调用本地方法要复杂一些。)

标签: java c++ java-native-interface


【解决方案1】:

Java Native Interface 允许您在 C++ 和 Java 之间来回传递任何内容。它支持两个方向,但可能很棘手。还有其他的你可以看看 Swig 是其中之一,然后你有 JNA。我会选择 JNI

【讨论】:

    【解决方案2】:

    JNI 将是最好的方法。请注意,javah 会为您的 java-class 创建兼容的头文件,您自己编写兼容的头文件非常棘手,因此请使用 javah。

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 2021-11-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      相关资源
      最近更新 更多