Linux Java jni 调用之HelloWorld
2010-10-29 22:36
561 查看
public class Test { static { System.loadLibrary("Hello"); } public native void output(); public static void main(String [] args){ System.out.println(System.getProperty("java.library.path")); Test test = new Test(); test.output(); } }
javac Test.java
javah Test
生成
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Test */ #ifndef _Included_Test #define _Included_Test #ifdef __cplusplus extern "C" { #endif /* * Class: Test * Method: output * Signature: ()V */ JNIEXPORT void JNICALL Java_Test_output (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
根据生成的Test.h 中的JAVA_Test_output 的声明 ,写相应的C实现
#include <jni.h> #include <stdio.h> JNIEXPORT void JNICALL Java_Test_output(JNIEnv * jnienv, jobject job){ printf("Hello,World!!! "); }
用gcc 编译生成相应的库,在windows 以dll 结尾,而在linux 是以.so 结尾,且以lib 开头
如 System.loadLibrary("Hello");
在windows 上要有Hello.dll 文件, 而在linux 上要有libHello.so 在 System.getProperty("java.library.path") 相应的目录
而在linux 下生成.so 文件,
用这个命令 gcc -shared -fPIC Test.c -o libHello.so
把libHello.so 移到 System.getProperty("java.library.path")目录下
相关文章推荐
- JNI学习--通过Java应用调用C语言的函数打印hello,world
- linux java jni helloworld
- JNI:Java调用C函数打印hello,world
- JNI:C调用java输出hello,xxx
- linux下java 调用 c jni 实现 HelloWorld
- linux下使用jni实现c++调用java程序(1)准备工作
- Linux平台使用JNI的例子 Java调用so
- JNI(java Native Interface)linux下 java调用本地c函数
- linux下通过JNI用C/C++中调用JAVA类
- linux下 使用JNI 来以C++调用JAVA的类!(一)
- linux下 java JNI调用C语言动态链接库
- Linux平台使用JNI的例子 Java调用so
- JNI(java Native Interface)linux下 java调用本地c函数
- LinuxJni / HelloWorld / gdb的使用/图像格式
- linux下 java JNI调用C语言动态链接库
- JNI(java Native Interface)linux下 java调用本地c函数
- Linux下配置Java环境变量,以及JNI调用权宜配置
- linux下 使用JNI 来以C++调用JAVA的类!(一)
- linux下使用jni实现c++调用java程序(4)DestroyJavaVM出现错误
- linux下通过JNI用C/C++中调用JAVA类