ubuntu编写jni并编译
来源:互联网 发布:淘宝首页模板制作 编辑:程序博客网 时间:2024/06/05 02:44
1. ubuntu14.04安装好jdk并设置java_home
2. 设置好android源码编译环境,主要是gcc和make
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \ libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \ libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \ xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \ lib32readline-gplv2-dev gcc-multilib libswitch-perl \ libssl1.0.0 libssl-dev3. hadoop@hadoop-nb:~$ mkdir jni hadoop@hadoop-nb:~$ cd jni hadoop@hadoop-nb:~/jni$ mkdir com hadoop@hadoop-nb:~/jni$ mkdir com/yf hadoop@hadoop-nb:~/jni$ vi com/yf/JniTest.java内容如下:package com.yf;import java.lang.System;public class JniTest{static { System.loadLibrary("jni-test");}public static void main(String args[]) { JniTest jniTest = new JniTest(); System.out.println(jniTest.get()); jniTest.set("hello jni world");}public native String get();public native void set(String str);}3.编译JniTest.java hadoop@hadoop-nb:~/jni$ javac com/yf/JniTest.java
4. 生成JNI头文件
hadoop@hadoop-nb:~/jni$ javah -classpath . com.yf.JniTest
生成h文件
hadoop@hadoop-nb:~/jni$ ls
com com_yf_JniTest.h
5. 编辑实现JNI方法的c++
hadoop@hadoop-nb:~/jni$ vi test.cpp
内容如下:
//test.cpp
#include "com_yf_JniTest.h"
#include <jni.h>
#include <stdio.h>
JNIEXPORT jstring JNICALL Java_com_yf_JniTest_get
(JNIEnv *env, jobject thiz){
printf("invoke get in c++\n");
return env->NewStringUTF("Hello from JNI !");
}
JNIEXPORT void JNICALL Java_com_yf_JniTest_set
(JNIEnv *env, jobject thiz, jstring string){
printf("invoke set from c++\n");
char* str = (char*)env->GetStringUTFChars(string,NULL);
printf("%s\n",str);
env->ReleaseStringUTFChars(string,str);
}
6.编译cpp文件,生成so库文件
hadoop@hadoop-nb:~/jni$ gcc -shared -I /home/hadoop/javaweb/jdk1.7.0_79/include -fPIC test.cpp -o lib/libjni-test.so
在lib目录下生成libjni-test.so文件
7. 运行整个程序并输出结果
hadoop@hadoop-nb:~/jni$ java -classpath . -Djava.library.path=lib com.yf.JniTest
invoke get in c++
Hello from JNI !
invoke set from c++
hello jni world
- ubuntu编写jni并编译
- jni编写编译注意点
- ubuntu下编译JNI程序
- ubuntu下编译JNI程序
- ubuntu下编译JNI程序
- Ubuntu下编译JNI程序
- Ubuntu下编译Android JNI实例全过程
- 在ubuntu下编译android jni
- ubuntu 15.用ECLIPSE编译JNI
- Ubuntu 14.04 mapnik-jni 2.2.0编译
- Ubuntu下安裝NDK工具,编译JNI文件
- ubuntu编译制作并升级
- Android JNI 手把手教你编写.so并调用接口
- JNI编写
- 如何编写并编译一个shellcode!
- 使用emacs编写c程序并编译
- 使用记事本编写C#程序并编译
- Android JNI helloworld程序编写与编译-图文解说
- 拓扑排序(栈模拟)+dfs(hdu 5438)
- Android开发中连续设置多个按钮的监听器的方法
- (C语言版)猴子吃桃问题
- Android-单线程轮循机制批量下载图片、图片压缩、内存泄漏、图片缓存、文件缓存
- Android EditText 改变边框颜色的方法
- ubuntu编写jni并编译
- (dubbo学习)linux 安装dubbo+zookeeper
- 渡轮问题
- 程序的运行流程-- 链接 装载 及执行
- 1178: [Apio2009]CONVENTION会议中心
- 坚持#第40天~克服困难
- leetCode练习(16)
- imageloader用法
- [LeetCode]27. Remove Element【&26. Remove Duplicates from Sorted Array】