JNI 入门实例代码 , Linux, C++

来源:互联网 发布:arm-linux-gcc是什么 编辑:程序博客网 时间:2024/05/17 08:50

HelloWorld.java

package com.gt;public class HelloWorld {    private native void print();    public static void main(String[] args){        new HelloWorld().print();    }    static{        System.load("/home/gt/workspace/JniTest/bin/libHelloWorld.so");    }}

自动生成的com_gt_HelloWorld.h

/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_gt_HelloWorld */#ifndef _Included_com_gt_HelloWorld#define _Included_com_gt_HelloWorld#ifdef __cplusplusextern "C" {#endif/* * Class:     com_gt_HelloWorld * Method:    print * Signature: ()V */JNIEXPORT void JNICALL Java_com_gt_HelloWorld_print  (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif

自己写的HelloWorld.cpp

#include "com_gt_HelloWorld.h"#include <cstdio>JNIEXPORT void JNICALL Java_com_gt_HelloWorld_print(JNIEnv *,jobject){printf("helloworld");}

编译出so

g++ HelloWorld.cpp -I $JAVA_HOME/include/ -I $JAVA_HOME/include/linux/ -fPIC -shared -o libHelloWorld.so
0 0
原创粉丝点击