第二步,你必须明确的加载本地代码库,我们是在一个类中的static块里加载的:
static
{
    System.loadLibrary ("happy");
} 
完整代码:
class Happy
{
     public native void printText ();
    static
     {
           System.loadLibrary ("happy");   /* Note lowercase of classname! */
     }
    
     public static void main (String[] args)
     {
           Happy happy = new Happy ();
           happy.printText ();
     }
} 
编译Java代码
javac Happy.java 
创建C头文件
javah Happy 
创建C stubs文件
javah -stubs Happy 
写C代码
#include      /* Standard native method stuff. */
#include "Happy.h"         /* Generated earlier. */
#include         /* Standard C IO stuff. */
void Happy_printText (struct HHappy *this)
{
     puts ("Happy New Year!!!");
} 
创建共享库
首先,编译我们已经有的C文件。你必须告诉编译器在哪能找到Java本地方法支持文件,但是主要的是你必须明确告诉编译器去生产一个位置无关代码(Position Independent Code):
gcc -I/usr/local/java/include -I/usr/local/java/include/genunix -fPIC -c Happy.c HappyImp.c 
现在创建一个共享库:
gcc -shared -Wl,-soname,libhappy.so.1 -o libhappy.so.1.0 Happy.o HappyImp.o 
cp libhappy.so.1.0 libhappy.so 
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH 
执行应用程序
java Happy