| Step By Step

## Step 5: Write the Native Method Implementation

> Now, you can finally get down to the business of writing the implementation for the native method in another language.

> The function that you write must have the same function signature as the one you generated with `javah` into the `HelloWorld.h` file in Step 3: Create the .h File. The function signature generated for the `HelloWorld` class's `displayHelloWorld()` native method looks like this:

> >     extern void HelloWorld_displayHelloWorld(struct HHelloWorld *);

> Here's the implementation for `HelloWorld_displayHelloWorld()`, which is in the file named `HelloWorldImp.c`.

> >     #include <StubPreamble.h>
> >     #include "HelloWorld.h"
> >     #include <stdio.h>

> >     void HelloWorld_displayHelloWorld(struct HHelloWorld *this) {
> >         printf("Hello World!\n");
> >         return;
> >     }

> As you can see, the implementation for `HelloWorld_displayHelloWorld()` is straightforward: the function uses the `printf()` function to display the string "Hello World!" and then returns.

> This file includes three header files:

> - `StubPreamble.h`, which provides information the native language code requires to interact with the Java runtime system. When writing native methods, you must always include this file in your native language source files.
> - The `.h` file that you generated in Step 3: Create the .h File.
> - The code snippet above also includes `stdio.h` because it uses the `printf()` function.

| Step By Step