Java C JNI对复杂代码的帮助

Java C JNI对复杂代码的帮助,java,c,linux,java-native-interface,Java,C,Linux,Java Native Interface,开发环境:Ubuntu 10.10 32位,Eclipse,OpenJDK 我目前有一个用C编写的可执行文件的代码。我需要修改它,将其转换为.so库,并从Java代码访问其函数 目前,C代码包含3个头文件和3个源文件.C。我只需要调用main函数并从java向它传递两个字符串。其余所有函数都是从main内部调用的。不幸的是,另一个函数将结果打印到命令行。如何实现JNI来传递这两个字符串并返回这个特定的结果 我在网上找到了一些例子,但发现它们太简单了。 我也找不到要使用的jni.h头 我会使用JN

开发环境:Ubuntu 10.10 32位,Eclipse,OpenJDK

我目前有一个用C编写的可执行文件的代码。我需要修改它,将其转换为.so库,并从Java代码访问其函数

目前,C代码包含3个头文件和3个源文件.C。我只需要调用main函数并从java向它传递两个字符串。其余所有函数都是从main内部调用的。不幸的是,另一个函数将结果打印到命令行。如何实现JNI来传递这两个字符串并返回这个特定的结果

我在网上找到了一些例子,但发现它们太简单了。 我也找不到要使用的jni.h头

我会使用JNIEXPORT int JNICALL Java_ppldtct_mainJNIEnv*、jobject、jstring、jstring而不是C中的int main argc、char**argv吗

非常感谢所有的帮助


谢谢

如果我理解正确,您正在尝试对现有代码进行最小的更改


如果是这种情况,您可以尝试用管道覆盖文件描述符1标准输出,并以这种方式获得程序的输出。

您也可以从本机C代码调用Java代码

您可以通过调用JNI提供的函数GetMethodID来查找Java方法,并根据返回类型,通过CallVoidMethod调用此类函数

可以使用NewStringUTF的NewString在C中创建Java字符串