zoukankan      html  css  js  c++  java
  • 教学生jni编程(一)

    我的所有文件的目录在/home/michelle/WORKM/DAYCODE/day0426/,请根据个人情况适当调整

    1)创建一个HelloWorld.Java文件,如下:

    public class HelloWorld {
        static{
            System.load("/home/michelle/WORKM/DAYCODE/day0426/libhelloWorld.so");
        }
        public HelloWorld(){
        }
        public native void sayHello(String message);                                      //表明是本地语言的函数声明
    }

    2)编译HelloWorld.java生成HelloWorld.class文件

     javac HelloWorld.java

    3)使用如下命令生成HelloWorld.h文件

    javah -jni HelloWorld 

    4)创建一个HelloWorld.cpp的文件如下:

    #include  <stdio.h>

    #include  <String.h>
    #include "HelloWorld.h"

    JNIEXPORT void JNICALL Java_HelloWorld_sayHello(JNIEnv * env, jobject obj, jstring name) {
        jboolean isCopy;
        const char * pname = env->GetStringUTFChars(name,&isCopy);
        int len = strlen(pname);
        printf("Hello,%s ", pname);
        env->ReleaseStringUTFChars(name,(const char *)pname);


        return;
    }

    5)使用如下命令编译生成libhelloWorld.so文件

     g++ -I /usr/lib/jvm/java
    -8-openjdk/include -I /usr/lib/jvm/java-8-openjdk/in
    clude/linux -fPIC -c HelloWorld.cpp                  //注意红色的是一行代码

    g++ -shared  -o libhelloWorld.so HelloWorld.o 

    6)创建一个JNIClient.java文件如下:

    public class JNIClient{
        public static void main(String argv[]){
            HelloWorld h = new HelloWorld();
            h.sayHello("World");
        }

    }

     7)编译生成JNIClient.class文件

     javac JNIClient.java

    8)用java JNIClient测试是否成功。

    java JNIClient运行即可,成功OK。

     主要内容框架参考http://blog.csdn.net/huoyin/article/details/3006772,为了教学需要,更加详细的予以说明。

  • 相关阅读:
    hibernate update部分更新
    strtus2.0实现下载
    cookie和session机制之间的区别与联系
    生成随机数字验证码
    ssh生成随机数字验证码
    ASP一句话轻松获取域上的用户名
    SQL server 日志文件清除
    Entity Framework中使用DbMigrator更新数据库至最新结构
    进程间通信
    asp备份SQL数据库
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6823132.html
Copyright © 2011-2022 走看看