What is the difference between a Java method and a native method?



A native method is the one whose method implementation is done in other languages like c++ and Java. These programs are linked to Java using JNI or JNA interfaces.

The difference between normal method and native method is That the native method declaration contains native keyword and, the implementation of the method will be other programming language.

Example

Tester.java

 public class Tester { public native int getValue(int i); public static void main(String[] args) { System.loadLibrary("Tester"); System.out.println(new Tester().getValue(2)); } } 

Tester.c

 #include <jni.h> #include "Tester.h" JNIEXPORT jint JNICALL Java_Tester_getValue( JNIEnv *env, jobject obj, jint i) { return i * i; } 

Compile and run

 javac Tester.java javah -jni Tester gcc -shared -fpic -o libTester.so -I${JAVA_HOME}/include \ -I${JAVA_HOME}/include/linux Tester.c java -Djava.library.path=. Tester 

Output

 4 
Updated on: 2019-07-30T22:30:20+05:30

620 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements