⬅ Previous Topic
Java long KeywordNext Topic ⮕
Java new Keyword⬅ Previous Topic
Java long KeywordNext Topic ⮕
Java new Keywordnative
Keyword in Java
In Java, the native
keyword is used to declare a method that is implemented in another language like C or C++. These methods are not written in Java but are instead defined outside the Java environment and connected using the Java Native Interface (JNI).
This keyword tells the Java compiler: “This method exists, but you won’t find its body here. Look for it in some native library.”
native
Methods?Java is powerful, but there are moments where:
In these cases, native methods come in handy. They bridge the gap between Java and lower-level languages.
native
Keyword
The native
keyword is placed in a method declaration, without a body:
public native void printMessage();
native
MethodsSystem.loadLibrary()
.public class NativeExample {
// Declare native method
public native void sayHello();
// Load the native library
static {
System.loadLibrary("NativeExampleImpl");
}
public static void main(String[] args) {
new NativeExample().sayHello();
}
}
(This will run the native method implemented in C/C++)
Use javac NativeExample.java
to compile the class.
Use javah NativeExample
(deprecated) or javac -h . NativeExample.java
to generate a C header file.
#include
#include
#include "NativeExample.h"
JNIEXPORT void JNICALL Java_NativeExample_sayHello(JNIEnv *env, jobject obj) {
printf("Hello from native code!\n");
}
On Linux/macOS:
gcc -shared -o libNativeExampleImpl.so -fPIC NativeExample.c -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux"
On Windows:
cl /LD NativeExample.c /I"%JAVA_HOME%\include" /I"%JAVA_HOME%\include\win32"
java NativeExample
Hello from native code!
native
Keywordnative
Avoid using native methods unless absolutely necessary. Java offers a rich standard library and many cross-platform tools. Use native code only when Java alone cannot solve the problem efficiently.
⬅ Previous Topic
Java long KeywordNext Topic ⮕
Java new KeywordYou can support this website with a contribution of your choice.
When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.