JAVA and JNI
pre-requisite – Install Java SE Development Kit 6u14 under /usr/jdk1.6.0_14
Write a JAVA class [ HelloWorld.java ]
Compile the class using javac
sudo javac HelloWorld.java
after this HelloWorld.class file should get created.
Create header file required for writing a native program
sudo javah -jni HelloWorld
Write a helloworld.c native c program.
[c] #include "HelloWorld.h" #include <stdio.h> JNIEXPORT void JNICALL Java_HelloWorld_printHelloWorld (JNIEnv *env, jobject obj) { printf("Hello Worldn"); } [/c]
Create a shared library.
gcc -I/usr/jdk1.6.0_14/include -I/usr/jdk1.6.0_14/include/linux -shared -o libhello.so HelloWorld.c
Write a Main java class[ Main.java ], which will call native function.
[java] public class Main { public static void main(String[] args) { new HelloWorld().printHelloWorld(); } } [/java]
Compile Main.java
javac Main.java
Run the program
java Main
Reference’s
1) Using the JAVA Native interface’s
2) JNI Example
3) Integrating Native methods into Java
4) Imp- Introduction to JNI
5) http://java.sun.com/docs/books/jni/html/start.html