JNI全称是Java native interface,它是一个中间件,通过JNI可以使Java和C语言之间互相调用,在android开发中,像wifi热点的开启,像极品飞车中重力加速,碰撞效果的模拟以及音视频文件的编码解码都离不开c的底层开发,因此说学好jni还是非常有用的,今天先来看看一些基础知识吧:
先来一个间的c语言代码:
# include<stdio.h>
# include<stdlib.h>
main(){
printf("Hello world !
");
system("pause");
}
这个程序输出一个简单的"Hello world ! "
再来一个简单的Java程序:
public class HelloJava{
public static void main(String args[]){
System.out.println("Hello java and JNI !");
}
}
把Java程序编译成.class文件之后,然后把.class文件和之前的c文件放在同一个文件夹中,这样就可以直接在c中执行Java:
# include<stdio.h>
# include<stdlib.h>
main(){
printf("Hello world !
");
system("java HelloJava");
system("pause");
}
结果为:
如果.class文件和c文件不在同一个文件夹中,假设.class文件在c盘的根目录下,那么该如何调用呢?
# include<stdio.h>
# include<stdlib.h>
main(){
printf("Hello world !
");
system("java -classpath c:\ HelloJava");
system("pause");
}