Jni C linux平台第一个实例

1、平台:linux

2、安装jdk,gcc

3、编写java代码

HelloWorld.java


public class HelloWorld

{

    private native void print();

 

    static

    {

        System.loadLibrary("HelloWorld");

     }

 

     public static void main(String[] args)

     {

          new HelloWorld().print();

     }

}

 

4、编译Java代码

 

 javac HelloWorld.java

 

5、生成头文件

 

javah -jni HelloWorld

 

6、头文件如下

 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    print
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloWorld_print
  (JNIEnv *, jobject);


#ifdef __cplusplus
}
#endif
#endif

 

 

7、编写c文件

 

#include "HelloWorld.h"
#include <jni.h>

JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
        printf("Hello World");
}

 

8、将c文件编译成linux平台下的动态连接库,这里需要注意,linux平台动态链接库的命名方法(lib***.so)

 

gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -c HelloWorld.c

 

使用上面的命令编译,生成.o文件,再将.o文件打包成.so文件

 

gcc -shared -o libHelloWorld.so HelloWorld.o

 

生成libHelloWorld.so动态链接库文件

 

9、设定动态库地址

 

export LD_LIBRARY_PATH=libHelloWorld.so所在目录 :$LD_LIBRARY_PATH

 

10、运行代码

 

java HelloWorld

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值