我有一个嵌入式硬件和用C编写的这个硬件的所有驱动程序和用java.So编写的应用程序,如何与我的java应用程序和C语言编程接口。
答案 0 :(得分:0)
你需要使用 Java Native Interface
答案 1 :(得分:0)
是的,您可以通过JNI通过java调用C函数,下面是示例步骤
假设您想要从c
获取一个字符串来说GetName1)创建Java类名JNICallExample
JNICallExample类{
public native String getname();
}
2)然后编译它并创建一个类文件,然后在类文件所在的位置运行命令:javah NameOfTheJavafile
3)您将获得一个生成的.h文件(即:JNICall.h)
4)使用.h文件创建一个C文件,其中包含.h文件作为标题
5)现在在创建C文件后运行以下命令
gcc -fPIC -shared -I / usr / lib / jvm / java-8-oracle / include -I / usr / lib / jvm / java-8-oracle / include / linux -o libJNIDemo.so JNICall.c
其中/ usr / lib / jvm / java-8-oracle / include是你的java home位置
6)这将生成一个.so文件(例如在上面的libJNIDemo.so中)
7)现在将它包含在您的Java文件中,以便上面的java文件将被修改为
JNICallExample类{
静态{
System.loadLibrary("libJNIDemo.so");
}
public native String getname();
}