通过java API我可以调用C函数

时间:2015-10-09 18:21:03

标签: java

我有一个嵌入式硬件和用C编写的这个硬件的所有驱动程序和用java.So编写的应用程序,如何与我的java应用程序和C语言编程接口。

2 个答案:

答案 0 :(得分:0)

你需要使用 Java Native Interface

答案 1 :(得分:0)

是的,您可以通过JNI通过java调用C函数,下面是示例步骤

假设您想要从c

获取一个字符串来说GetName

1)创建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();

}