【问题标题】:Compile C code for JVM or embed C runtime inside JVM为 JVM 编译 C 代码或在 JVM 中嵌入 C 运行时
【发布时间】:2021-02-19 04:23:18
【问题描述】:

H3 library是基于C代码的

而且我需要在只允许 Java 运行时运行的平台上使用它。

是否可以将 C 代码编译为可在 JVM 上运行的 Java (jar)?还是在 JVM 中嵌入 C 运行时?

【问题讨论】:

    标签: java c++ c


    【解决方案1】:

    一般情况下,C 代码不能由 VM 执行。虽然有多种方法可以将 C 编译为 Java(12),但这可能不是最适合您的解决方案。

    与原生代码交互的典型方式是JNI (Java Native Interface)

    幸运的是,您不需要自己执行此操作。 H3 已经提供了现成的 Java 绑定:

    https://github.com/uber/h3-java

    您可以简单地将绑定用作 POM 中的依赖项,然后使用 Java 类与 H3 进行交互。

    【讨论】:

      【解决方案2】:

      您正在寻找的是Java Native Interface (JNI)。这允许您在本机代码(例如,用 C 编写)和 Java 代码之间创建绑定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-15
        • 1970-01-01
        相关资源
        最近更新 更多