首页 > 解决方案 > 如何使用 JNI 在 Java 中调用 c++ 应用程序

问题描述

我有一个现有的 c++ 应用程序,它有一些 API。我需要在我的 Java 程序中调用这些 API。我尝试在网上查看一些示例应用程序。但大多数人都在创建一个单独的 c++ 应用程序。

例如,在我当前的 c++ 应用程序中,有这个用于 getValue() 的 API。我想使用 JNI 在 Java 中调用这个 getValue() 方法。

这是我试图遵循的参考。 示例代码(helloworld)

我的意图不是重新创建 c++ 应用程序,我只想在我的 c++ 应用程序和 java 程序之间有 JNI 包装器。

如果这个问题有点愚蠢,我真的很抱歉。这是我第一次创建 JNI 包装器。所以我的问题可能有点愚蠢。

目前这是我的 Java 代码的样子:

public native void getValue();

static {
    System.loadLibrary(ValueClient);
}

public static void Main(String[] args) {
    Value value= new Value();
    value.getValue();
}

但问题是,main 应该在另一个 java 文件中。我怎样才能调用 getValue() api而不像上面那样在 Main 中调用它?

标签: javac++java-native-interface

解决方案


推荐阅读