首页 / 操作系统 / Linux / 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.java5、生成头文件 javah -jni HelloWorld6、头文件如下 /* 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
#endif7、编写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