java - C/C++ 头文件到 java

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

是否有任何好的工具可以从头文件生成 java(如果需要 +JNI 支持),以便可以按原样使用 C 或 C++ 库。有点像 javah 的反转。真正的功能将在 C/C++ 中,而 Java 对某些用户来说只是顶层的垫片。

我不是 JNI 方面的专家,但据我所知,Javah 会强制您从头到尾执行此操作。它迫使你让 JNI-isms 不必要地渗透到 C 代码中,除非你自己编写一个转换层。手动编写转换层基本上是浪费时间,因为所有信息都在头文件中。

最佳答案

对于 C,您可以使用 JNA .您必须在 Java 中冗余地声明函数签名,但不必编写任何胶水代码。 JNA 非常易于使用。

对于 C 或 C++,您可以使用 SWIG . SWIG 使用起来稍微复杂一些,但会自动为 C++ 类生成 Java 包装器。我很享受。

关于java - C/C++ 头文件到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3770397/

相关文章:

c++ - const_cast 转换为左值引用不会删除常量

c++ - C - 共享库 - dlopen、dlsym

c++ - PostgreSql 查询中的参数数据类型错误

c++ - Boost MPL 嵌套 lambda

objective-c - 如何从 C 中的控制台接受 "only characters"或 "only digits"?

c - 如何在 GTK 中创建项目目录 TreeView 和树存储?

java - 如何在单个 JdbcTemplateexecute() 和 PostgreSQL 中记录多个 sql 查询的进度

java - Spark 与 Hive : Table or view not found

java - 完成的线程会发生什么?

java - 在 Java 中使用 DocumentTraversal 递归遍历 XML 元素