一个JNI的简单示例

      1.编写HelloWorld.java:

class HelloWorld {
   private native void print();
   public static void main(String[] args) {
      new HelloWorld().print();
   }

   static {
      System.loadLibrary("HelloWorld");
   }
}

      2.编译HelloWorld.java:

javac HelloWorld.java

      这将输出HelloWorld.class文件。

      3.创建头文件:

javah -jni HelloWorld

      这将输出HelloWorld.h文件,内容大概是:JNIEXPORT void JNICALL Java_HelloWorld_print (JNIEnv *, jobject);。

      4.编写HelloWorld.c:

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

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

      5.编译HelloWorld.c:

cc -G -I/java/include -I/java/include/solaris
HelloWorld.c -o libHelloWorld.so

      6.运行程序(假设libHelloWorld.so在当前目录):

LD_LIBRARY_PATH=.
export LD_LIBRARY_PATH
java HelloWorld
或者
java -Djava.library.path=. HelloWorld

      程序应该输出:Hello World!。

原文地址:https://www.cnblogs.com/frydsh/p/3015817.html