[原创]Linux下写本地方法

类别:Java 点击:0 评论:0 推荐:

[原创]Linux下写本地方法

创建本地方法有7步:
   •写Java代码
   •编译Java代码
   •创建C头文件(.h file)
   •创建C stubs文件
   •写C代码
   •创建共享代码库或DLL
   •运行程序

写Java代码

在你的代码里用本地方法,你需要做两件事,首先,为你要用的每个本地方法写一个本地方法声明。就象写一个Java方法接口声明一样,但是你必须用native关键字指明这是本地方法:

public native void printText ();


第二步,你必须明确的加载本地代码库,我们是在一个类中的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
 

本文地址:http://com.8s8s.com/it/it15772.htm