Java可以通过JNI(Java Native Interface)调用C语言的so动态库。
以下是一个简单的示例:
1. 编写C语言代码
```c
#include
#include "HelloWorld.h"
JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj) {
printf("Hello World!\n");
}
```
2. 使用javah命令生成头文件
在命令行中进入到C语言代码所在的目录,执行以下命令:
```
javah -jni HelloWorld
```
这将会生成一个名为HelloWorld.h的头文件。
3. 编写Java代码
```java
public class HelloWorld {
static {
System.loadLibrary("hello"); // 加载so动态库
}
private native void print(); // 声明native方法
public static void main(String[] args) {
new HelloWorld().print(); // 调用native方法
}
}
```
4. 编译并运行程序
在命令行