java - 如何从java调用c++目标文件中的函数?

标签 java c++ java-native-interface

我有一个项目中的现有 cpp 文件,我想将其用于我的 Java 应用程序。我无法更改 cpp 文件。如何从 Java 调用函数?

我在 Windows 10 中使用 JavaFX 作为我的应用程序。我看过一些有关 JNI 的文章,但似乎都没有解决我的问题。

最佳答案

如果不需要 JNI 或 swig 或看起来级别太低,

一个真正生硬的方法是将.cpp包装在c/c++程序中,并构建一个转储到stdout/文件的.exe。然后通过外部 shell 命令在 java 中执行它。

另一个不错的选择是

Apache thrift

这基本上可以处理所有事情,可以说无处不在(通过自动生成目标语言的代码来工作),这是我在 RPC 情况下通常推荐的一种方式。但是,可能会涉及更多的设置成本(最终,取决于您的实际需求) - 另外,因为您需要在本地服务中托管 .cpp。

关于java - 如何从java调用c++目标文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849146/

相关文章:

Android ffmpeg 版本 :invalid address or address of corrupt block passed to dlfree

java - 将原生 uint8_t(Java 字节)转换为 int

java - 由 : java. lang.NoClassDefFoundError : org. apache.http.util.Args 引起

c++ - ChangeDisplaySettingsEx() 总是返回 DISP_CHANGE_BADPARAM

c++ - 从 xlslib 构建 dll 文件

c++ - Compiler Warning C4806 (number==bool value) 的动机是什么?

java - 如何处理 java swing 组件事件而不创建一个困惑的类?

java - 在 Java 中,HashSet<Integer> = new HashSet(2) 和 HashSet<Integer> = new HashSet<Integer>(2) 之间有什么区别?

java - 如何将字符串数组嵌入实体 (JPA)

从 Rust 调用时,Java JNI 在退出时崩溃