首页 > 其他 > 详细

JNI测试

时间:2021-03-16 14:57:33      阅读:35      评论:0      收藏:0      [点我收藏+]

JNI测试 

1:生成JNI的基础流程用例

HelloJNI.java代码

 1 public class HelloJNI {  // Save as HelloJNI.java
 2    static {
 3       System.loadLibrary("HelloJNI"); // Load native library hello.dll (Windows) or libhello.so (Unixes)
 4                                    //  at runtime
 5                                    // This library contains a native method called sayHello()
 6    }
 7  
 8    // Declare an instance native method sayHello() which receives no parameter and returns void
 9    private native void sayHello();
10  
11    // Test Driver
12    public static void main(String[] args) {
13       new HelloJNI().sayHello();  // Create an instance and invoke the native method
14    }
15 }

 

javac生成class文件

javac HelloJNI.java

javah生成h文件

javah HelloJNI.java

生成的h文件内容为

 1 /* DO NOT EDIT THIS FILE - it is machine generated */
 2 #include <jni.h>
 3 /* Header for class HelloJNI */
 4 
 5 #ifndef _Included_HelloJNI
 6 #define _Included_HelloJNI
 7 #ifdef __cplusplus
 8 extern "C" {
 9 #endif
10 /*
11  * Class:     HelloJNI
12  * Method:    sayHello
13  * Signature: ()V
14  */
15 JNIEXPORT void JNICALL Java_HelloJNI_sayHello
16   (JNIEnv *, jobject);
17 
18 #ifdef __cplusplus
19 }
20 #endif
21 #endif

 

HelloJNI.c实现c++方法,

1 #include <stdio.h>      // C Standard IO Header
2 #include "HelloJNI.h"   // Generated
3  
4 // Implementation of the native method sayHello()
5 JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
6    printf("Hello World!\n");
7    return;
8 }

 

 使用g++生成libHelloJNI.so

1 g++ --shared HelloJNI.c -o libHelloJNI.so -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux

 

设置java lib查找路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/d/workspace/self/java/jni

 

java调用HelloJNI

java HelloJNI

 

结果如下所示

技术分享图片

 

JNI测试

原文:https://www.cnblogs.com/hgwang/p/14542967.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!