| Table of Contents

# Step By Step

> This lesson walks you through the steps necessary to integrate native code with Java programs.

> The example used throughout this lesson implements the canonical "Hello World!" program. The "Hello World!" program has two Java classes. The first, called `Main`, implements the `main()` method for the overall program. The second, called `HelloWorld`, has one method, a native method, that displays "Hello World!". The implementation for the native method is provided in the C programming language.

> #### Step 1: Write the Java Code

> > Create a Java class named `HelloWorld` that declares a native method. Also, write the main program that creates a `HelloWorld` object and calls the native method.

> #### Step 2: Compile the Java Code

> > Use `javac` to compile the Java code that you wrote in Step 1.

> #### Step 3: Create the .h File

> > Use `javah` to create a header file (a `.h` file) from the `HelloWorld` Java class. The header file defines a structure that represents the `HelloWorld` class on the native language side, and provides a function definition for the implementation of the native method `displayHelloWorld()` defined in that class.

> #### Step 4: Create a Stubs File

> > Now, use `javah` to create a stubs file. The stubs file contains native language code that provides the glue that holds the Java class and its parallel native language structure together.

> #### Step 5: Write the Native Method Implementation

> > Write the implementation for the native method in a native language source file. The implementation will be a regular function that's integrated with your Java class.

> #### Step 6: Create a Shared Library

> > Use the compiler to compile the `.h` file, the stubs file, and the `.c` file that you created in Steps 3, 4, and 5 into a shared library. In Windows 95/NT terminology, a shared library is called a dynamically loadable library (DLL).

> #### Step 7: Run the Program

> > And finally, use `java`, the Java interpreter, to run the program.

| Table of Contents