开发环境:Ubuntu 10.10(32位)、Eclipse、OpenJDK
我目前有用 C 编写的可执行文件的代码。我需要修改它以将其转换为 .so 库并从 Java 代码访问其函数。
目前,C 代码包含 3 个头文件和 3 个源文件 (.c)。我只需要调用 main 函数并将两个字符串从 java.lang.String 传递给它。所有其余的函数都是从 main() 内部调用的。不幸的是,其他函数之一将结果打印到命令行。如何实现 JNI 来传递两个字符串并返回这个特定结果?
我在网上找到了一些例子,但发现它们太简单了。 我也无法找到要使用的 jni.h header 。
我会使用JNIEXPORT int JNICALL Java_ppldtct_main(JNIEnv*,jobject,jstring,jstring)
而不是C中的int main(int argc,char** argv)
?
非常感谢所有帮助。
谢谢
最佳答案
如果我理解正确,您正在尝试对现有代码进行最小的更改。
如果是这种情况,您可以尝试使用管道覆盖文件描述符 1 ( stdout ),并以这种方式获取程序的输出。
关于java - C JNI 帮助处理复杂代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946951/